我有一个方法,它为一个类型提供一个关键路径,但是当我尝试使用关键路径的简写版本时,它给了我一个编译错误。
这是我正在尝试做的事情:
struct MyType {
let prop1: String
let prop2: Int
let prop3: Bool
}
func test(_ keyPath: PartialKeyPath<MyType>) {
switch keyPath {
case \MyType.prop1:
print("prop1")
case \MyType.prop2:
print("prop1")
case \MyType.prop3:
print("prop1")
default:
break
}
}
test(\MyType.prop1)
在switch
语句中,是否可以做case \.prop1
而不是指定根?当我尝试这个时,我得到这个错误:
Type of expression is ambiguous without more context
default
即使我已经指定了该类型的所有属性,它也迫使我指定一个案例。这也有原因吗?谢谢你的帮助。