You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用高阶函数计算[Any]类型数组中所有可取值数值的总和

Swift 计算[Any]数组中可转换为有效数值的元素总和

给定[Any]类型数组定义如下:

let array = [1,5,6,"50","Hi",54] as [Any]

可通过compactMap+reduce两个高阶函数组合实现计算,完整代码如下:

let totalSum = array
    .compactMap { element -> Int? in
        // 处理原生Int类型元素
        if let intValue = element as? Int {
            return intValue
        }
        // 处理可转换为Int的字符串元素
        if let stringValue = element as? String, let intValue = Int(stringValue) {
            return intValue
        }
        // 不可转换的元素返回nil,会被自动过滤
        return nil
    }
    // 累加所有有效数值
    .reduce(0, +)

运行后得到的totalSum结果为116。
用到的高阶函数说明:

  • compactMap:遍历数组所有元素执行自定义转换逻辑,自动丢弃返回值为nil的无效元素,最终得到仅包含有效Int的新数组
  • reduce:以0为初始累加值,遍历有效Int数组完成所有元素的求和计算

内容的提问来源于stack exchange,提问作者Hetali Adhia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:45:03