Требовать тип и протокол для параметра метода
Я играю со Swift и спотыкаюсь о следующей проблеме: учитывая, что у меня есть предопределенный классAnimal
:
//Predefined classes
class Animal {
var height: Float = 0.0
}
Я сейчас пишу классZoo
с конструктором, принимающим животных. НоZoo
хочет, чтобы каждое животное имело имя и, следовательно, определяетNamable
протокол.
protocol Namable {
var name: String {get}
}
class Zoo {
var animals: Animal[] = [];
}
Как бы вы написалиaddAnimal
метод, который требует, чтобы объект, передаваемый в качестве параметра, былтип Animal
а такжесоответствовать протоколу Namable
? И как вы заявляете, что дляanimals
массив?
func addAnimal:(animal: ????) { ... }
В Objective-C я бы написал что-то вроде этого
- (void)addAnimal:(Animal<Namable>*)animal {...}