我刚开始学习Swift,并且来自Java背景。我想弄清楚如何将对象数组的元素收集到数组中。请参阅以下示例:
struct Employee {
var name: String
var age: Double
var height: Double
var weight: Double
}
let employees = [Employee]()
使用上面的Employee对象,我在一个数组中有一个雇员列表。我想将所有年龄段收集到类似于Java中的lambda表达式的数组中。
在Java 8中,您可以执行以下操作:
double[] ages = employees.stream().mapToDouble(x -> x.age).toArray()
提前致谢
您可以像这样使用map(_ :)函数:
let ages = employees.map { $0.age }
更新:正如@LeoDabus在评论中所说,自Swift 5.2起,map(_:)
可以将函数用于KeyPath
更优雅的方法:
let ages = employees.map(\.age)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句