我在数组中有“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(使用前将#替换为@)