是否可以创建一个可以用显式参数标签调用的下标?
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]