Foo.Type.Type
is Any.Type.Type
はもちろん、 is Any.Type
も成り立つみたいなので、メタタイプ一般を Any.Type
で表せそうです。 1> protocol Animal {} 2. class Cat : Animal {} 3. class Dog : Animal {} 4. 5. let a: [Any.Type.Type] = [Cat.Type.self, Dog.Type.self] 6. let b: [Any.Type] = [Cat.Type.self, Dog.Type.self] a: [Any.Type.Type] = 2 values { [0] = Cat.Type [1] = Dog.Type } b: [Any.Type] = 2 values { [0] = Cat.Type [1] = Dog.Type }
Animal
いらないですね。 1> let a: [Any.Type.Type] = [Int.Type.self, String.Type.self] 2. let b: [Any.Type] = [Int.Type.self, String.Type.self] a: [Any.Type.Type] = 2 values { [0] = Int.Type [1] = String.Type } b: [Any.Type] = 2 values { [0] = Int.Type [1] = String.Type