繁体   English   中英

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

[英]Stored properties in Swift can't refer to each other?

为什么我不能给依赖于Swift 2.0中另一个stored property值的stored property值的原因是什么?

下面的代码给出了一个错误信息:

Something.Type没有名为'foo'的成员

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

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

有没有解决的办法?

看来您正在尝试初始化变量baz ,而swift才有机会知道fooSomething的属性。 将您的初始化放入init构造函数中。

class Something {
    let foo: String
    let baz: String

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM