Saya memahami bahwa di Swift semua variabel harus disetel dengan nilai, dan dengan menggunakan opsional kita dapat menyetel variabel untuk disetel pada nil
awalnya.
Apa yang saya tidak mengerti adalah, apa yang dilakukan pengaturan variabel dengan a !
, karena saya mendapat kesan bahwa ini "membuka" nilai dari opsional. Saya pikir dengan melakukan itu, Anda menjamin bahwa ada nilai untuk dibuka dalam variabel itu, itulah sebabnya di IBActions dan yang Anda lihat digunakan.
Jadi sederhananya, variabel apa yang diinisialisasi ketika Anda melakukan sesuatu seperti ini:
var aShape : CAShapeLayer!
Dan mengapa / kapan saya melakukan ini?
Jawaban:
Dalam deklarasi tipe
!
mirip dengan?
. Keduanya opsional, tetapi opsional!
" secara implisit tidak dibungkus" , yang berarti Anda tidak perlu membukanya untuk mengakses nilai (tetapi nilainya masih bisa nihil).Ini pada dasarnya adalah perilaku yang sudah kami miliki di objektif-c. Sebuah nilai bisa nihil, dan Anda harus memeriksanya, tetapi Anda juga dapat mengakses nilai secara langsung seolah-olah itu bukan opsional (dengan perbedaan penting bahwa jika Anda tidak memeriksa nil Anda akan mendapatkan kesalahan waktu proses)
Pemakaian:
sumber
nil
nilai dan benar-benar "bekerja" dengannya, dengan cepat mengakses opsional yang tidak terbungkus secara implisit sementara nilainya nihil akan memunculkan pengecualian waktu proses.