使用var={}()的swift语法意味着什么?
我是新来的斯威夫特抱歉,如果这看起来太简单了。但我在任何地方都找不到答案 我试图理解下面的语法。代码有使用var={}()的swift语法意味着什么?,swift,syntax,properties,Swift,Syntax,Properties,我是新来的斯威夫特抱歉,如果这看起来太简单了。但我在任何地方都找不到答案 我试图理解下面的语法。代码有=那么{..}()为什么需要()在末尾,还有=签名 var productLines: [ProductLine] = { return ProductLine.productLines() }() 我知道计算变量应该是。。下面这个 var varA: [arrayOutput] { return someArray } 在swift中,={return something}()的确切含义是
=
那么{..}()
为什么需要()
在末尾,还有=
签名
var productLines: [ProductLine] = { return ProductLine.productLines() }()
我知道计算变量应该是。。下面这个
var varA: [arrayOutput] { return someArray }
在swift中,
={return something}()
的确切含义是什么 您看到的是设置变量初始值的闭包。闭包可以描述为匿名代码块
这是您的代码的外观:
var productLines: [ProductLine] = { return ProductLine.productLines() }()
让我像这样展开您的代码:
var productLines: [ProductLine] = { () -> [ProductLine] in
return ProductLine.productLines()
}()
闭包本身由以下代码组成
{ () -> [ProductLine] in
return ProductLine.productLines()
}
两个圆括号()
用于执行闭包。
因此,您看到的不是计算属性。因此,您可以在以后像这样更改productLines
的值:
productLines = [ProductLine]()
如果它是一个计算属性,则会出现如下错误:
无法分配给属性:productLines是仅获取的属性
{…}
是一个闭包(内联函数定义)()
调用该函数`。其作用是,首先使用闭包的结果设置变量productLines
{return ProductLine.productLines()},()
调用该闭包函数。因此,productLines
的值可以稍后覆盖。所以不,这不是一个计算属性。非常感谢,这正是我需要的。很好的答案。(投票)。我正准备写一个解释,但你涵盖了所有的基础。