使用 var ={}() 的快速语法是什么意思?

标签 swift syntax properties

如果这看起来太简单了,我很抱歉,我是 Swift 的新手。但我无法从任何地方找到答案。

我试图理解下面的语法。代码有 = 然后 {..}() 为什么需要 () 最后还有 = 符号为了 ?

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]()

如果它是一个计算属性,你会得到这样的错误:

Cannot assign to property: productLines is a get-only property

关于使用 var ={}() 的快速语法是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35871409/

相关文章:

ios - 如何在swift中将纬度和经度转换为浮点值

ios - View Controller 不会初始化

swift - "\u{}"的 Unicode 和可接受的参数

理解缩进的 php 语法检查器

objective-c - 如何从其他 View Controller 访问属性

c# - 迭代对象列表并使用字符串获取元素属性

java - 如何复制 java.util.Properties 对象?

swift - 如何仅裁剪 View 的左侧和右侧?

scala - 在 Scala 中将函数参数定义为 "var"?

c# - '>' 函数声明期间的符号?