例如,我有一个数组:
let a = [1, "a", 2.0]
我可以在map函数中使用模式匹配来应用例如仅对整数的乘法吗?
在scala中,它看起来像这样:
a map { b => b match {
case n: Int => n * 2
case _ => b
}}
这可能用swift吗?
Swift中的模式匹配可以用switch
语句完成:
let a : [Any] = [1, "a", 2.0]
let r = map(a) {
b -> Any in
switch b {
case let n as Int:
return n * 2
case let d as Double:
return d / 2.0
default:
return b
}
}
println(r)
// Output: [2, a, 1.0]