是否可以将类作为函数参数传递?我目前有一个基类,我将其称为BaseClass.现在,这是我能做的:
func someFunction(instanceParameter: BaseClass) {
// code
}
该参数将是从BaseClass继承的某个类.但是,我想将类类型本身作为参数传递.这是一些伪代码:
func someFunction(classParameter: Class) {
// code
}
参数将是ClassThatInheritsFromBaseClass,而不是ClassThatInheritsFromBaseClass的实例.
最重要的是,是否可以将类参数限制为从BaseClass继承的类?下面的伪代码显示了我的意思.
func someFunction(classParameter: BaseClass_Class_Not_Instance) {
// code
}
最佳答案 您正在寻找
metatype type – .Type:
func someFunction(classParameter: Class.Type) {
// code
}
您可能只能使用泛型限制为子类,但我还没有测试过这个:
func someFunction<T: BaseClass where T != BaseClass>(classParameter: T.Type) { ... }