Optional Chaining Swift
Setelah sebelumnya mempelajari optional
dan bagaimana cara mengkonversinya ke tipe normal.
Namun, kamu mungkin masih bertanya-tanya mengapa ?
dan !
secara otomatis muncul ketika kamu mengakses properti dan method object. Jika tidak, tidak apa-apa. Tujuannya adalah untuk mencegah kamu menebak nebak apa yang sebenarnya terjadi.
Kamu mungkin pernah melihat
import UIKit let label = UILabel().highlightedTextColor?.cgColor
Tanda ?
secara misterius muncul tiba-tiba. Oke sekarang kita coba me-replikasi fenomena itu.
Silahkan buka Playground lalu buatlah sebuah class Human
yang berisi properti String name
dan fungsi sayHello()
.
class Human { var name: String init(name: String) { self.name = name } func sayHello() { print("Hai, Nama saya \(name)") } }
Buat kelas, House
, yang berisi properti yang tipenya Human?
.
class House { var human: Human? }
Inisialisasi Properti
Buat instance House
dan assign properti human
.
var jakartaHouse = House() jakartaHouse.human = Human(name: "Raffan")
Memanggil Properti dan Method
Sekarang, coba ambil properti Human
jakartaHouse
. Karena tipe Human
itu optional , tanda ?
ditambahkan secara otomatis.
Rules: Ketika kamu mengakses properti yang jenisnya optional, Swift akan menambahkan
?
. Apapun yang terjadi setelah tanda?
akan menjadi optional.
var myName = jakartaHouse.human?.name // Selalu mengembalikan tipe `optional` karena Human adalah` optional`. if let name = myName { print(name) }
Force Unwrap
Kamu bisa memaksa membuka !
Optional Chaining. Namun, jika properti tidak diinisialisasi akan CRASH.
var bekasiHouse = House() let houseOwner = bekasiHouse.human!.name // Error: human tidak memiliki nilai (belum diset)
Kesimpulan
Kamu telah mempelajari optional chaining
memberikan pintasan ke properti dan method antara class dan struct. Tanda ?
secara otomatis muncul ketika kamu mengakses properti yang tipenya optional untuk menunjukkan bahwa apa pun yang datang setelahnya mungkin tidak mengandung nilai karena properti optional mungkin nil
.
Semoga bermanfaat.