Если бы у меня был обобщенный класс c, подобный этому:
class Generic<T: Any> {
var object: T
init(object: T) {
self.object = object
}
}
Я мог бы получить доступ к объекту из инициализатора следующим образом:
Generic(object: "Hello World").object.count // 11
Как этот универсальный c класс работает для Any
типа, как бы я расширил все типы для возврата объекта этого родового c класса?
Я имею в виду что-то вроде этого:
extension Any {
var generic: Generic<Self> {
Generic(object: self)
}
}
Так что я могу Звоните:
"Hello World".generic.object.count // 11
Я запутался со всеми Any
, AnyObject
, Self
, self
, Type
и т. д.
ОБНОВЛЕНИЕ:
Например, как мне расширить все Comparable
с вычисленными свойствами array: Array<Comparable>
? Я думаю о чем-то вроде:
extension Comparable {
var array: Array<Comparable> {
Array(self)
}
}