В Swift мы можем написать следующую конструкцию:
class SomeClass {}
let metaMetatype: SomeClass.Type.Type = SomeClass.Type.self
Здесь metaMetatype
не соответствует типу AnyObject
(SomeClass.Type
does). Строительство может быть даже дольше, если мы хотим:
let uberMetatype: SomeClass.Type.Type.Type.Type.Type.Type.Type.Type.Type.Type = SomeClass.Type.Type.Type.Type.Type.Type.Type.Type.Type.self
Являются ли эти конструкции имеющими смысл? Если SomeClass.Type.Type
не объект, что это такое и почему мы можем его объявить?