有没有更快/更好的方法来在Swift中进行这个简单的迭代?

for node in nodes{
    names.append(node.name)
}

我刚刚写了这段代码,感觉就像我在用缓慢/菜鸟的方式做这件事,想想我到目前为止在 Python 和 Swift 方面的经验,只是觉得我应该问一下。

回答

您没有显示names. 我假设您的代码如下所示:

var names: [String] = []
for node in nodes {
    names.append(node.name)
}

如果是这样,你可以这样写:

let names = nodes.map { $0.name }

或者像这样:

let names = nodes.map(.name)

另一方面,如果names可能已经包含一些您想要保留的值,您可以这样做:

names.append(contentsOf: nodes.lazy.map(.name)

使用.lazyhere 可以防止 Swift 创建一个临时数组来保存新名称。


以上是有没有更快/更好的方法来在Swift中进行这个简单的迭代?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>