Swift:如何计算数组中每个元素的税额并生成新数组
如何计算数组中每个元素对应的美元税额?
你已定义了存储每月收入的数组和税率常量:
let incomePerMonthArray = [0.0, 1.0, 2.0, 3.0] let taxRate = 10.0
同时实现了单个数值的税额计算函数,但该函数无法直接处理数组:
// Calculate percentage based on given values public func calculatePercentage(value:Double, percentageVal:Double) -> Double { let val = value * percentageVal return val / 100.0 } // 仅支持单个值计算 let taxInUSD = calculatePercentage(value: Double(incomePerMonth), percentageVal: taxRate)
最优实现方式
在Swift中,处理数组元素批量转换的最优方案是使用高阶函数map,它可以简洁高效地遍历数组并对每个元素执行转换操作,以下是两种可行的实现:
方案1:复用已有计算函数
直接用map遍历数组,对每个元素调用你已实现的calculatePercentage函数:
let taxArray = incomePerMonthArray.map { calculatePercentage(value: $0, percentageVal: taxRate) }
$0代表当前遍历到的数组元素map会自动收集所有转换后的结果,返回一个新的[Double]数组
方案2:内嵌计算逻辑(更紧凑)
如果不需要单独保留计算函数,可以直接把税额计算逻辑写在map的闭包中:
let taxArray = incomePerMonthArray.map { $0 * taxRate / 100.0 }
这种方式省去了函数调用的开销,代码更简洁,性能同样高效。
两种方案都是Swift标准库推荐的数组转换方式,代码可读性高且性能经过优化,适合处理这类批量计算需求。
内容的提问来源于stack exchange,提问作者Sumiser
相关产品推荐
相关产品推荐

