【发布时间】:2015-08-20 02:34:34
【问题描述】:
我想通过计算init() 中的值来初始化一个不可变字典。我目前有:
class MyClass {
var images: [String: UIImage]
func init() {
images = [:]
for // ... loop over strings
// ... calculate image
images[string] = image
}
}
有没有办法用let 而不是var 语义来定义这个属性。这会很方便并且看起来很合适,因为它的内容在对象初始化后不会改变。 (如果我只是将这个 var 更改为 let 我目前收到循环内分配的此错误:“不可变值'self.images'可能未分配给”。)
【问题讨论】:
-
只需先在局部变量中构建字典,然后分配给属性...
-
也可以使用函数表达式一次性创建字典,但您需要分享有关计算的更多信息。
标签: swift initialization immutability swift2 access-control