Учитывая функцию с универсальным параметром, я хотел бы передать значение типа Any.Type
в функцию, но она не компилируется.
func foo<T>(_ type: T.Type) {
print(type)
}
foo(Any.self) // ok
foo(Int.self) // ok
let a: Any.Type = Any.self // ok
let b: Any.Type = Int.self // ok
foo(a) // error: expected an argument list of type '(T.Type)'
foo(b) // error: expected an argument list of type '(T.Type)'
Я предполагаю, что:
foo(Any.self)
успешно компилируется и заполнитель типа T
будет содержать Any
.
Аналогично, если значение типа Any.Type
дано, T
должно быть преобразовано в Any
Не могли бы вы объяснить, почему этот код не работает?