【发布时间】:2015-03-02 18:30:36
【问题描述】:
我有一组动物。我想搜索某个子类类型。 Animals 数组将永远只包含每个子类类型之一。我尝试了以下方法,但不起作用。我收到一个编译错误,指出:“animalType 不是类型”。
public static func getAnimal<T: Animal>(animalType: T.type) -> Animal {
for animal in self.animals {
if animal is animalType {
return animal
}
}
}
这在 Swift 中可行吗?
我想这样称呼它......
AnimalServices.getAnimal(Dog)
【问题讨论】:
-
你可以做一个 if let cast 作为一个类型,如果它失败了那么这个动物不是那个类型
-
我刚试过。 "if let a = animal as animalType { }" 编译器仍然抱怨 animalType 不是类型。我在搞砸语法吗?