您现在的位置是:亿华云 > IT科技

Swift 5.2 将 KeyPaths 用作函数

亿华云2025-10-03 20:04:44【IT科技】8人已围观

简介本文转载自微信公众号「Swift社区」,作者Swift社区。转载本文请联系Swift社区公众号。Swift 5.2 的新功能之一:能够将 KeyPaths 用作函数。如果您只在闭包中返回某个 KeyP

本文转载自微信公众号「Swift社区」,用作作者Swift社区。函数转载本文请联系Swift社区公众号。用作

Swift 5.2 的函数新功能之一:能够将 KeyPaths 用作函数。如果您只在闭包中返回某个 KeyPath 的用作值,这将非常有用。函数

在 Swift 5.2 之前:

struct Student {    let id: Int   let name: String   let age: Int    let grade: Double } func getStudentsName(from students: [Student]) -> [String] {    return students.map {  $0.name } } 

此代码使用 map(_ :) 通过将数组中的用作每个学生返回 $0.name 来将 Student 对象的数组转换为学生名字 String 数组,服务器租用这是函数我们常用的一种写法。

在 Swift 5.2 中,用作可以写成(需要 Xcode 11.4 beta 以上):

func getStudentsName(from students: [Student]) -> [String] {      return students.map(\.name) } 

这样的写法看起来非常清晰,也很简便。函数和 map(_ :) 一样 filter(_ :),用作 reduce(_ :) 等函数也可以直接这样写,比如我们想获取所有年龄大于21岁的函数学生的名字数组。站群服务器

extension Student {      var isTwentyOneOrOlder: Bool {          return age >= 21     } } func getStudentsName(from students: [Student]) -> [String] {      return student.filter(\.isTwentyOneOrOlder)                   .map(\.name) } 

写成这样并不是用作必须的,只是函数在某些情况能让代码看起来更简便,但是用作有时候则不然,所以可以根据需要选择是否使用。

亿华云计算

很赞哦!(858)