Swift 如何将类名传递给函数,以及在函数中使用类名的init var
在Swift 4中,我想将类名传递给函数:Swift 如何将类名传递给函数,以及在函数中使用类名的init var,swift,generics,Swift,Generics,在Swift 4中,我想将类名传递给函数: let usingClass = MyClass.self myFuntion(usingClass) func myFuntion <T>(_ typeClass: T.Type) { ... var myVar: [typeClass] ... } 我的职能: let usingClass = MyClass.self myFuntion(usingClass) func myFuntion <T>(_ typeCl
let usingClass = MyClass.self
myFuntion(usingClass)
func myFuntion <T>(_ typeClass: T.Type) {
...
var myVar: [typeClass]
...
}
我的职能:
let usingClass = MyClass.self
myFuntion(usingClass)
func myFuntion <T>(_ typeClass: T.Type) {
...
var myVar: [typeClass]
...
}
func函数(uutypeclass:T.Type){
...
var myVar:[类型类]
...
}
编译时,我获得以下错误消息:
用于未声明的类型“typeClass”
在var myVar:[typeClass]
我错了什么?正如Hamish所建议的,我的问题的答案是,当我想要声明我的变量时,只需使用T。这样,我就可以使用不同类型的相同函数,并且所有函数都可以正常工作:
let usingClass = MyClass.self
myFuntion(usingClass)
let usingAnotherClass = MyOhterClass
myfunction(usingAnotherClass)
func myFuntion<T>(_ typeClass: T.Type) {
...
var myVar: [T]
...
}
让usingClass=MyClass.self
MyFunction(使用类)
让我们使用另一个类=MyOhterClass
myfunction(使用其他类)
函数MyFunction(uTypeClass:T.Type){
...
var myVar:[T]
...
}
你不能那样做。所有类型都需要在编译时已知,因此您不能在运行时指定myVar
的类型。您可能希望它是[T]
类型。