Swift 带参数标签的下标
Swift subscript with argument label
是否可以创建一个可以使用显式参数标签调用的下标?
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
尝试使用标签导致错误:
Extraneous argument label 'label:' in subscript
新的关键路径功能看起来像是使用带有参数标签的下标,但这可能是 public 无法使用的编译器魔法:
let value = someThing[keyPath: \.property]
默认情况下不使用 subscript
中的外部参数标签,因此与普通函数不同,如果您想使用外部参数标签,则需要明确指定。
struct MyType {
subscript(label label: Bool) -> String? {
return nil
}
}
let test = MyType()
let value = test[label: true]
是否可以创建一个可以使用显式参数标签调用的下标?
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
尝试使用标签导致错误:
Extraneous argument label 'label:' in subscript
新的关键路径功能看起来像是使用带有参数标签的下标,但这可能是 public 无法使用的编译器魔法:
let value = someThing[keyPath: \.property]
默认情况下不使用 subscript
中的外部参数标签,因此与普通函数不同,如果您想使用外部参数标签,则需要明确指定。
struct MyType {
subscript(label label: Bool) -> String? {
return nil
}
}
let test = MyType()
let value = test[label: true]