鉴于以下代码……
protocol MyProtocol {}
enum MyEnum: MyProtocol {}
struct MyStruct: MyProtocol {}
class MyClass: MyProtocol {}
func MyFunction(parameter: MyProtocol.Type) -> String {
return "Hi"
}
为什么我在分配变量时必须使用.self …
var variable: MyProtocol.Type = MyStruct.self
而不是当我传递元类型作为函数参数?
var result = MyFunction(MyStruct)
最佳答案 它看起来像是编译器错误.我个人觉得.self应该包含在函数参数中.
但是,一旦Swift的源代码在今年晚些时候发布,可能会有更好的解释.与此同时,您可以提交雷达.
编辑:如果Class.Type是唯一的函数参数,它似乎放弃.self要求. Swift leave out .self to invoke a function which needs metatype?