FilteredArrayUsingPredicate 在 swift 数组中不存在

2024-02-13

我在数组中有“UserDetails”结构对象。我想从数组中过滤对象。但 Swift 数组中没有“filteredArrayUsingPredicate”选项。

我的数组创建

var arrayOfUsers: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哪一个的用户 ID 为“1”。


Swift 数组有一个.filter需要闭包的方法——这将做到这一点:

let filteredArray = arrayOfUsers.filter() { $0.userID == "1" }

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

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

两者之间的区别在于,第一个使用尾随闭包语法、简写参数名称、类型推断和隐式返回。你可以阅读Apple 的 Swift 文档中有关闭包的更多信息 https://developer.apple.com/library/prerelease/ios/documentation/swift/conceptual/swift_programming_language/Closures.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FilteredArrayUsingPredicate 在 swift 数组中不存在 的相关文章

随机推荐