Swift中的存储属性不能互相引用?

时间:2015-08-06 14:43:11

标签: swift swift2

我可以为stored property赋予一个值,这取决于Swift 2.0中另一个的价值?

以下代码提供错误说明:

  

Something.Type没有名为' foo'

的成员
class Something {
    let foo = "bar"
    let baz = "\(foo) baz"
}

这很奇怪,因为Something.Type肯定有一个名为foo的成员。

有解决方法吗?

2 个答案:

答案 0 :(得分:4)

在swift有机会知道baz属于foo的属性之前,您似乎尝试初始化变量Something。将初始化放在init构造函数中。

class Something {
    let foo: String
    let baz: String

    init () {
        foo = "bar"
        baz = "\(foo) baz"
    }
}

答案 1 :(得分:2)

您也可以使用lazy初始化,但现在必须将其变为变量:

class Something {
    let foo = "bar"
    lazy var baz = { "\(self.foo) baz" }()
}