Trong phiên bản 5.6 trở về trước thì các câu lệnh sau đây sẽ báo lỗi:
func printName() {
let name:String?="Folami"
if let name {
print(name)
}
}
Mà code đúng phải là:
func printName() {
let name:String?="Folami"
if let name = name {
print(name)
}
}
Trong Swift 5.7 thì các bác cứ thoải mái dùng cú pháp như trong đoạn code đầu tiên nha. Cách ghi này gọi là dạng viết tắt của
Optional Binding
Tuy nhiên có một giới hạn là chúng ta không thể truy xuất đến property của một đối tượng. Điều này có nghĩa là cách viết tắt của Optional Binding không hỗ trợ
Optional Chaining. Như vậy đoạn code sau sẽ báo lỗi khi biên dịch:
class Person {
var name:String?
init(name:String){
self.name = name
}
}
func printName() {
let name:String?="Folami"
if let name {
print(name)
}
}
let author = Person(name:"Folami")
if let name = author.name {
print(name)
}
if let author.name {
//Se bao loi dong phia tren
print(author.name)
}
Không có nhận xét nào:
Đăng nhận xét