假定以下:在初始化程序中使用函數 - Swift?
class A {
let x : Int
init() {
self.x = assign(1)
}
func assign(y : Int) -> Int {
return y
}
}
這產生一個錯誤。
這是我的問題:有沒有辦法在類初始化程序中調用函數?
編輯:添加錯誤消息:都存儲屬性之前
使用方法調用分配'自我'的初始化
假定以下:在初始化程序中使用函數 - Swift?
class A {
let x : Int
init() {
self.x = assign(1)
}
func assign(y : Int) -> Int {
return y
}
}
這產生一個錯誤。
這是我的問題:有沒有辦法在類初始化程序中調用函數?
編輯:添加錯誤消息:都存儲屬性之前
使用方法調用分配'自我'的初始化
我認爲這是不是最大的解決方案,但它仍然工作中。
class A {
var variable : Int
init() {
self.variable = A.assign(1)
}
private class func assign(y : Int) -> Int {
return y
}
}
它的工作原理,謝謝。出於好奇,爲什麼這個工作,而以前的方法沒有? –
它是一個類函數,這種函數不需要初始化對象或@Sulthan你能深入解釋一下嗎 –
不能調用實例方法,直到實例初始化(前init
完成),但你可以使用使用class
或static
關鍵字定義模塊級的功能和type methods。
func compute(y: Int) -> Int {
return y
}
class A {
let x: Int
static func assign(y: Int) -> Int {
return y
}
init() {
x = A.assign(3) + compute(4)
}
}
什麼是您遇到的異常/錯誤?看看你得到的實際結果會有所幫助 – konkked
有多種解決方案,但真正的用例會有所幫助。 – Sulthan