我正在尝试过滤一个类的实例数组。我想要一个由类属性之一过滤的新数组。Swift过滤器在此用例中的工作方式无法完全理解。
enum Gender { case male,female } class Person { let name:String let gender:Gender init(name:String,gender:Gender) { self.name = name self.gender = gender } } let people = [Person.init(name: "James", gender: .male), Person.init(name: "John", gender: .male), Person.init(name: "Sally", gender: .female) ] let males = people.filter( something )
这应该工作…
let males = people.filter({ $0.gender == .male })
您可能需要使您的枚举符合等式才能进行此比较。
$ 0是一个未命名的参数,您也可以这样做。
let males = people.filter({ person in return person.gender == .male })
编辑:我刚刚测试了它,它的工作而不会使枚举符合等于。我认为您只需要在枚举带有参数时执行此操作。