我在想下面的代碼片段中的某些內容顯然不起作用,但傳達了我的意圖。這一個給出了在其自己的初始值內使用的錯誤消息。初始化時可以直接改變屬性/變量嗎?
private let formatter = NumberFormatter() {
formatter.maximumFractionDigits = 6
}
我在想下面的代碼片段中的某些內容顯然不起作用,但傳達了我的意圖。這一個給出了在其自己的初始值內使用的錯誤消息。初始化時可以直接改變屬性/變量嗎?
private let formatter = NumberFormatter() {
formatter.maximumFractionDigits = 6
}
不,你不能突變本身的初始設定中的屬性。 你可以做的是使屬性的初始值的 「立即關閉評估」:
private let formatter: NumberFormatter = {
let fmt = NumberFormatter()
fmt.maximumFractionDigits = 6
// ...
return fmt
}()
這將創建一個NumberFormatter
,設置所需的性能, 和結果到formatter
財產分配。
謝謝,這真棒!正是我想要它做的事情! – saidaspen
我認爲這是初始化的工作,做這樣的事情,這是標準的:
class NumberFormatter {
var maximumFractionDigits: Int = 0
init(maximumFractionDigits: Int) {
self.maximumFractionDigits = maximumFractionDigits
}
}
let formatter = NumberFormatter(maximumFractionDigits: 6)
我對Swift完全陌生,對Stack Overflow提出了一些問題。如果我使用錯誤的名稱或術語,請原諒我。 – saidaspen