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.
