是否可以在swift中的地图功能中使用模式匹配



例如,我有一个数组:

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]

最新更新