我一直在尋找蘋果提供的Swift編程語言指南。 下面的示例是從書:模式變量綁定不能出現在表達式中
class HTMLElement {
let name :String;
let text: String?;
@lazy var asHTML :() -> String = {
if let text = self.text {
return "<\(self.name)>\(self.text)</\(self.name)>";
} else {
return "<\(self.name) />"
}
}
}
我寫錯了封閉如下:
@lazy var asHTML :() -> String = {
if (let text = self.text) {
return "<\(self.name)>\(self.text)</\(self.name)>";
} else {
return "<\(self.name) />"
}
}
通知各地let text = self.text
和編譯器括號抱怨:
模式變量綁定不能出現在一個表達式中
想知道Pattern Variable Binding
是什麼意思,爲什麼它不能出現在表達式中?
在其他語言中這樣做有意義嗎?我不這樣做,例如'if(var name ='CjCoax'){console.log('你不會在這裏')}'。它的JavaScript例子,但很好解釋你正在嘗試做什麼 – sakhunzai
@cjcoax目標C和Swift的幾個區別在你的代碼中被證明:1)';'不需要,儘管編譯器安全地忽略它們。 2)不需要父母(或者在這種情況下,允許流量控制語句 –