gpt4 book ai didi

swift - 类作为函数参数

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:48 24 4
gpt4 key购买 nike

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

关于swift - 类作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32020251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com