什么是“与...做”迅速等同

时间:2015-11-05 00:37:36

标签: swift delphi swift2

在Delphi中编码时,我可以使用这种语法更好地看到我的代码:

true
true
true
false
false
false

那将是相同的:

int[] array = new Random().ints(0, 65536).limit(8000).toArray();

这只是代码更好看,没有别的。

在swift 2中有没有相当于Delphi的“with ... do”语法?

3 个答案:

答案 0 :(得分:1)

  

在Swift 2中有没有相当于Delphi的“with ... do”语法?

没有。

答案 1 :(得分:1)

我确实设法用一个简单的函数来模拟这个效果......

func with<T>(_ element: T, _ make: (T) -> ()) {
     make(element)
}

如果你不喜欢&lt;制作&gt;你可以用&lt;替换它`do`&gt;同样的工作......

和来自:

 minLat = Swift.max(location.coordinate.latitude, minLat)
 minLong = Swift.max(location.coordinate.longitude, minLong)
 maxLat = Swift.min(location.coordinate.latitude, maxLat)
 maxLong = Swift.min(location.coordinate.longitude, maxLong)

我得到了:

with(location.coordinate) { c in
    minLat = Swift.max(c.latitude, minLat)
    minLong = Swift.max(c.longitude, minLong)
    maxLat = Swift.min(c.latitude, maxLat)
    maxLong = Swift.min(c.longitude, maxLong)
}

它出来很可爱......

答案 2 :(得分:0)

您可以使用元组类型来设置结构的多个字段。这比with ... do构造有更好的封装,尽管看起来你想要做的事情会更好地用实例方法处理。