加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

filteredArrayUsingPredicate在swift Array中不存在

发布时间:2020-12-14 06:09:52 所属栏目:百科 来源:网络整理
导读:我有“UserDetails”结构对象在数组。我想从数组中过滤对象。但是在Swift数组中没有“filteredArrayUsingPredicate”的选项。 我的数组创建 var arrayOfUsers:UserDetails[] = UserDetails[]() 我的userdetails代码是 struct UserDetails{ var userName:Stri
我有“UserDetails”结构对象在数组。我想从数组中过滤对象。但是在Swift数组中没有“filteredArrayUsingPredicate”的选项。

我的数组创建

var arrayOfUsers:UserDetails[] = UserDetails[]()

我的userdetails代码是

struct UserDetails{
    var userName:String
    var userID:String
    var userAge:String
    func userDescription()->String{
        return "name " + userName + "age " + userID
    }
}

我的代码创建对象

for a in 1...1000{
            var user:UserDetails = UserDetails(userName: "name",userID: String(a),userAge: "22")
            arrayOfUsers.append(user)
        }

现在我想过滤arrayOfUsers哪一个有userID“1”。

Swift数组有一个.filter方法,它接受一个闭包 – 这样做:
let filteredArray = arrayOfUsers.filter() { $0.userID == "1" }

可以以多种方式简化闭合。关闭的完整声明看起来更像这样:

var filteredArray = arrayOfUsers.filter( { (user: UserDetails) -> Bool in
        return user.userID == "1"
    })

两者之间的区别是,第一个使用尾随闭包语法,简写变量名,类型推断和隐式返回。你可以读more about closures in Apple’s Swift documentation。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读