Swift-带参数标签的下标

时间:2019-09-18 12:36:23

标签: swift label subscript

是否可以创建可以使用显式参数标签调用的下标?

struct MyType {
    subscript (label: Bool) -> String? {
        return nil
    }
}

let test = MyType()
let value = test[label: true]

新的密钥路径功能看起来像它,但可能是编译器的魔法,但尚未公开:

let value = someThing[keyPath: \.property]

谢谢!

1 个答案:

答案 0 :(得分:1)

subscript中默认不使用外部参数标签,因此与普通函数不同,如果要使用外部参数标签,则需要明确指定。

struct MyType {
    subscript(label label: Bool) -> String? {
        return nil
    }
}

let test = MyType()
let value = test[label: true]