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

let width = 200.0
let height = 30.0

let widthheight = width-height

我不能用其他2个常量创建一个常量。如果我在函数/方法中使用此功能,则一切正常。

谢谢

最佳答案

当您编写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
    }

}

10-08 17:00