我的课程类似于下面的课程。它是简化的,但它说明了我的问题。我想用“square”函数初始化“number”变量。
class SomeClass {
let number: Int
func square (num: Int) -> Int {
return num * num
}
init(num: Int) {
number = square(num)
}
}
但是当我创建一个类的实例时。例如
let instance = SomeClass(num: 2)
它抛出错误:在初始化所有存储属性之前,在方法调用'square'中使用'self'。
如何使用函数初始化数字?
答案 0 :(得分:7)
在这种特殊情况下,您可以使用类方法:
class SomeClass {
let number: Int
class func square (num: Int) -> Int {
return num * num
}
init(num: Int) {
number = SomeClass.square(num)
}
}
答案 1 :(得分:-2)
唯一的方法是,如何做你想做的事情,将数字声明为var并用一些值初始化它
class SomeClass {
var number: Int = 0
func square (num: Int) -> Int {
return num * num
}
init(num: Int) {
number = square(num)
}
}
let instance = SomeClass(num: 2)
instance.number // 4