如何将类名传递给函数,并在函数内部使用类名传递init var

时间:2017-12-16 18:38:23

标签: swift generics

在Swift 4中,我想将类名传递给函数:

let usingClass = MyClass.self
myFuntion(usingClass)

我的功能:

func myFuntion <T>(_ typeClass: T.Type) {
...
var myVar: [typeClass]
...

}

编译时,我收到以下错误消息:

  

用于未申报的类型&#39; typeClass&#39;

var myVar: [typeClass]

我错了什么?

1 个答案:

答案 0 :(得分:0)

正如Hamish所说,我的问题的答案就是在我想申报我的var时使用T.有了它,我可以使用不同类型的相同功能,所有工作正常:

let usingClass = MyClass.self
myFuntion(usingClass)

let usingAnotherClass = MyOhterClass
myfunction(usingAnotherClass)

func myFuntion<T>(_ typeClass: T.Type) {
    ...
    var myVar: [T]
    ...
}