0

我有一个方法,它为一个类型提供一个关键路径,但是当我尝试使用关键路径的简写版本时,它给了我一个编译错误。

这是我正在尝试做的事情:

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即使我已经指定了该类型的所有属性,它也迫使我指定一个案例。这也有原因吗?谢谢你的帮助。

4

0 回答 0