IT科技类资讯

Swift 5.2 将 KeyPaths 用作函数

时间:2010-12-5 17:23:32  作者:人工智能   来源:系统运维  查看:  评论:0
内容摘要:本文转载自微信公众号「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) } 

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

服务器托管
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap