以下 Swift 代码编译:
enum GraphDataSource {
case array(data: [Double], start: Double?, step: Double?)
case pairs(XYValues: [Double: Double])
case pairs(dateValues: [Date: Double])
case function((Double) -> Double?)
func localizedName() -> String {
// TODO: Create localizable strings
return NSLocalizedString(Mirror(reflecting: self).children.first?.label ?? "", comment: "")
}
}
Run Code Online (Sandbox Code Playgroud)
它有两个名为pairs. 但是当我尝试提取关联值时,结果是我无法选择我想要的值。
var graphData = GraphDataSource.function(sin)
switch graphData {
case .pairs(dateValues: let vals):
vals.keys.forEach({print($0)})
case .pairs(XYValues: let xy): // without this case everyting compiles OK
xy.keys.forEach({print($0)})
default:
break
}
Run Code Online (Sandbox Code Playgroud)
错误是:“元组模式元素标签‘XYValues’必须是‘dateValues’”。这是正常的吗?感觉编译器应该禁止同名的情况或允许同时打开两者。
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |