快速宣言的问题

Tob*_*ias 6 xcode ios swift

我只是问自己为什么我不能直接在Swift的Class声明中做这样的事情:

let width = 200.0
let height = 30.0

let widthheight = width-height
Run Code Online (Sandbox Code Playgroud)

我不能用2个其他常量创建常量.如果我在函数/方法中使用它一切正常.

谢谢

Jea*_*let 11

当你写作时let widthheight = width - height,这隐含意味着let widthheight = self.width - self.height.在Swift中,在完成self所有成员的初始化之前,你根本不被允许使用- 在这里,包括widthheight.

init但是,在方法中你有一点灵活性,你可以写下这样的东西:

class Rect {

    let width = 200.0
    let height = 30.0
    let widthheight: Double
    let widthheightInverse: Double

    init() {
        // widthheightInverse = 1.0 / widthheight // widthheight not usable yet
        widthheight = width - height
        widthheightInverse = 1.0 / widthheight // works
    }

}
Run Code Online (Sandbox Code Playgroud)