带有参数标签的快速下标



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

struct MyType {
subscript (label: Bool) -> String? {
return nil
}
}
let test = MyType()
let value1 = test[true] // ok
let value2 = test[label: true] // Extraneous argument label 'label:' in subscript

尝试使用该标签会导致错误:

下标中的无关参数标签"label:">

新的键路径功能看起来像是使用带有参数标签的下标,但这可能是编译器的魔术,不对公众开放:

let value = someThing[keyPath: .property]

默认情况下不使用subscript中的外部参数标签,因此与普通函数不同,如果要具有外部参数标签,则需要显式指定。

struct MyType {
subscript(label label: Bool) -> String? {
return nil
}
}
let test = MyType()
let value = test[label: true]

最新更新