swift是否相当于“with block”

时间:2017-07-27 16:12:56

标签: swift

在几种Microsoft语言中,存在“with block”的想法。例如,而不是

myObject.x = 5
myObject.y = 10
myObject.z = 12

你可以写一些像

这样的东西
With myObject
    .x = 5
    .y = 10
    .z = 12
End With

Swift中有类似的东西吗?

1 个答案:

答案 0 :(得分:3)

没有内置于该语言中,但有一个名为Then的库提供此功能:

let myObject = MyObject().then {
    $0.x = 5
    $0.y = 10
    $0.z = 12
}

如果您希望在没有依赖项的实例化时使用此行为,则可以使用从闭包返回的var:

let myObject: MyObject = {
    let _myObject = MyObject()
    _myObject.x = 5
    _myObject.y = 10
    _myObject.z = 12
    return _myObject
}()