gpt4 book ai didi

swift - 什么是 "with ... do"swift 等价物

转载 作者:搜寻专家 更新时间:2023-11-01 07:29:32 25 4
gpt4 key购买 nike

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

with person do begin       
setFirstName("Frodo");
setLastName("Baggins");
setAge(25);
enableRing;
sendToQuest;
end;

这将是相同的:

person.setFirstName("Frodo");
person.setLastName("Baggins");
person.setAge(25);
person.enableRing;
person.sendToQuest;

那只是为了代码更好看,没有别的。

swift 2 中是否有任何等效于 Delphi 的“with .. do”语法?

最佳答案

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

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

如果您不喜欢 ,您可以将其替换为 <`do`>,效果相同...

来自:

 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)
}

它出来的时候很可爱......

关于swift - 什么是 "with ... do"swift 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com