使用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
的值可以稍后覆盖。所以不,这不是一个计算属性。非常感谢,这正是我需要的。很好的答案。(投票)。我正准备写一个解释,但你涵盖了所有的基础。