私は動物スーパークラスと3つのサブクラスを持っている:ライオン犬と象。と同じ変数と値を持つサブクラスを呼び出す
enum Gender {
case male
case female
}
class Animal {
var species: String
var gender: Gender
init (species: String, gender: Gender) {
self.species = species
self.gender = gender
}
}
// Lion Class
class Lion: Animal {
var age: Int = 10
init() {
super.init(species: "Lion", gender: Gender.male)
}
}
// Elephant Class
class Elephant: Animal {
var age: Int = 8
init() {
super.init(species: "Elephant", gender: Gender.female)
}
}
//Dog Class
class Dog: Animal {
var age: Int = 6
init() {
super.init(species: "Dog", gender: Gender.female)
}
}
これらのすべてには、スーパークラスのAnimalから継承されたgender変数があります。 今私はすべての男性の動物を含む[Animal]
タイプのmaleAnimal
の計算されたプロパティを持っています、それを行う最良の方法は何ですか?
class Zoo {
var animals: [Animal] = [Lion(), Elephant(), Dog()]
var maleAnimals: [Animal] {
for animalClasses in animals {
if animalClasses.gender == Gender.male {
return self.maleAnimals.append(animalClasses)
}
}
}
}
私は下の例のようなものを試しましたが、明らかに機能しません。
ご迷惑をおかけして申し訳ありません。
フィルタは、あなたの必要条件に正確に合致しないものをフィルタリングします。 –