【发布时间】:2021-04-02 18:10:37
【问题描述】:
我想知道是否可以在我的类的 init 中传递一个符合协议的类型并将该类型保存为属性,以便我可以在我的类的另一个函数中使用它。
我认为我可以在 run 函数中传递这种泛型类型,但我不希望这样做。
protocol example {
static func exampleFunc()
}
class MyClass {
init(type: TypeThatConformsToExampleProtocol) {
// can i save `type` as a property and use it in my `run` function to call exampleFunc ?
}
func run() {
type.exampleFunc()
}
}
编辑:我已经编辑了协议并制作了方法static我忘了之前添加它。
【问题讨论】:
-
在你的例子中,
exampleFunc()是一个实例方法,而不是一个静态方法,所以你不能在类型本身上调用它。你的意思是让它静态吗?还是您的意思是传递一个值而不是一个类型? -
@RobNapier 是的,我的意思是静态的,抱歉。