Я просто подумал об этом, пытаясь выяснить, что такое Swift. Я придумал следующий тестовый код, где я бы хотел позвонить f()
. Я не могу понять, как я могу сообщить компилятору, что T
в этом случае Classy
.Как я могу назвать эту общую функцию?
protocol Prot {
func doSomething()
static func instance() -> Prot
}
class Classy: Prot {
func doSomething() {
print("here")
}
static func instance() -> Prot {
return Classy()
}
}
func f<T: Prot>() {
T.instance().doSomething()
}
f() // error
f<Classy>() // error
Попробуйте снова с '.self' –
хорошего вызова, и спасибо за фиксирование ответ.... –