我只是问自己为什么我不能直接在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
}
}