Swift - Opsional
Swift 4 juga memperkenalkan Optionalstype, yang menangani tidak adanya nilai. Pilihan mengatakan "ada nilai, dan itu sama dengan x" atau "tidak ada nilai sama sekali".
Opsional adalah tipenya sendiri, sebenarnya salah satu dari enum bertenaga super baru Swift 4. Ini memiliki dua kemungkinan nilai,None dan Some(T), dimana T adalah nilai terkait dari tipe data benar yang tersedia di Swift 4.
Berikut adalah deklarasi Integer opsional -
var perhapsInt: Int?
Berikut adalah deklarasi String opsional -
var perhapsStr: String?
Deklarasi di atas sama dengan menginisialisasinya secara eksplisit nil yang berarti tidak ada nilai -
var perhapsStr: String? = nil
Mari kita ambil contoh berikut untuk memahami cara kerja opsional di Swift 4 -
var myString:String? = nil
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -
myString has nil value
Opsional mirip dengan menggunakan nil dengan pointer di Objective-C, tetapi berfungsi untuk semua jenis, bukan hanya kelas.
Membuka Bungkus Paksa
Jika Anda mendefinisikan variabel sebagai optional, lalu untuk mendapatkan nilai dari variabel ini, Anda harus melakukannya unwrapItu. Ini hanya berarti memberi tanda seru di akhir variabel.
Mari kita ambil contoh sederhana -
var myString:String?
myString = "Hello, Swift 4!"
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -
Optional("Hello, Swift 4!")
Sekarang mari terapkan unrapping untuk mendapatkan nilai variabel yang benar -
var myString:String?
myString = "Hello, Swift 4!"
if myString != nil {
print( myString! )
} else {
print("myString has nil value")
}
Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut.
Hello, Swift 4!
Pembukaan Otomatis
Anda dapat mendeklarasikan variabel opsional menggunakan tanda seru, bukan tanda tanya. Variabel opsional tersebut akan terbuka secara otomatis dan Anda tidak perlu menggunakan tanda seru lebih lanjut di akhir variabel untuk mendapatkan nilai yang ditetapkan. Mari kita ambil contoh sederhana -
var myString:String!
myString = "Hello, Swift 4!"
if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -
Hello, Swift 4!
Binding opsional
Gunakan pengikatan opsional untuk mengetahui apakah opsional berisi nilai, dan jika demikian, untuk membuat nilai tersebut tersedia sebagai konstanta atau variabel sementara.
Pengikatan opsional untuk if pernyataannya adalah sebagai berikut -
if let constantName = someOptional {
statements
}
Mari kita ambil contoh sederhana untuk memahami penggunaan penjilidan opsional -
var myString:String?
myString = "Hello, Swift 4!"
if let yourString = myString {
print("Your string has - \(yourString)")
} else {
print("Your string does not have a value")
}
Ketika kami menjalankan program di atas menggunakan playground, kami mendapatkan hasil sebagai berikut -
Your string has - Hello, Swift 4!