swift – 类作为函数参数

是否可以将类作为函数参数传递?我目前有一个基类,我将其称为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) { ... }
点赞