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

如何在Swift的reduce()方法中直接将字符串转换为整数?

优化方案:在reduce中直接完成字符串转整数

没问题!咱们可以直接把字符串转整数的逻辑整合进reduce方法里,省去单独的map步骤,让代码更紧凑,同时还能优化原代码的安全性。

优化后的完整代码

let number: String = "111 15 111"
let result = number.components(separatedBy: " ").reduce(0) { sum, str in
    sum + (Int(str) ?? 0)
}

代码解释

  • reduce的闭包接收两个参数:累加器sum(初始值为0)和分割后的每个字符串元素str
  • 直接在闭包里把str转换为Int,用?? 0做兜底处理——这比原代码的!强制解包更安全,避免了字符串无法转成整数时的崩溃问题
  • 把转换后的整数加到累加器上,最终得到总和

更简洁的简写形式

如果喜欢更紧凑的写法,还可以用Swift的尾随闭包简写语法:

let result = number.components(separatedBy: " ").reduce(0) { $0 + (Int($1) ?? 0) }

这样既实现了你想要的去掉map的需求,还让代码更健壮,一举两得~

内容的提问来源于stack exchange,提问作者whok mok

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:06:17