我是Swift的新手,如果这看起来太简单,请对不起。但我无法从任何地方找到答案。
我试图理解下面这个语法。代码有=
然后{..}()
为什么最后需要()
并且=
签署?
var productLines: [ProductLine] = { return ProductLine.productLines() }()
据我所知,计算变量类似于......下面的
var varA: [arrayOutput] { return someArray }
={ return something }()
究竟在swift中调用或表示什么?
答案 0 :(得分:8)
您看到有一个用于设置变量初始值的闭包。闭包可以描述为匿名代码块。
这就是您的代码:
var productLines: [ProductLine] = { return ProductLine.productLines() }()
让我像这样扩展您的代码:
var productLines: [ProductLine] = { () -> [ProductLine] in
return ProductLine.productLines()
}()
闭包本身包含以下代码
{ () -> [ProductLine] in
return ProductLine.productLines()
}
两个圆括号()
用于执行闭包。
所以你看到的不是计算属性。因此,您可以在此之后更改productLines
的值:
productLines = [ProductLine]()
如果它是计算属性,则会出现类似这样的错误:
无法分配给属性:productLines是一个只用属性