Tôi đã làm việc trên một hướng dẫn Swift và thấy rằng Swift có một cách lạ để xử lý câu lệnh đa dòng.Tuyên bố đa dòng trong Swift
Trước tiên, tôi xác định một số phần mở rộng của String
lớp tiêu chuẩn:
extension String {
func replace(target: String, withString: String) -> String {
return self.stringByReplacingOccurrencesOfString(target, withString: withString)
}
func toLowercase() -> String {
return self.lowercaseString
}
}
này làm việc như mong đợi:
let str = "HELLO WORLD"
let s1 = str.lowercaseString.replace("hello", withString: "goodbye") // -> goodbye world
này không hoạt động:
let s2 = str
.lowercaseString
.replace("hello", withString: "goodbye")
// Error: could not find member 'lowercaseString'
Nếu tôi thay thế tham chiếu đến thuộc tính lowercaseString
bằng một cuộc gọi hàm, nó hoạt động trở lại :
let s3 = str
.toLowercase()
.replace("hello", withString: "goodbye") // -> goodbye world
Có bất kỳ thông số nào trong ngôn ngữ Swift ngăn chặn thuộc tính bị phá vỡ trên dòng riêng của nó không?
Mã số tại Swift Stub.