Ios for-in循环的结果之和,以swift为单位
我正在玩苹果健康套件的示例代码。他们使用for-in-loop函数在过去24小时内遍历所有样本。代码当然很有用 在swift中使用for in循环,是否可以找到所有值的总和 我一直在努力,但找不到解决办法 谢谢 克里斯 代码如下:Ios for-in循环的结果之和,以swift为单位,ios,iphone,swift,for-loop,Ios,Iphone,Swift,For Loop,我正在玩苹果健康套件的示例代码。他们使用for-in-loop函数在过去24小时内遍历所有样本。代码当然很有用 在swift中使用for in循环,是否可以找到所有值的总和 我一直在努力,但找不到解决办法 谢谢 克里斯 代码如下: for sample in results as [HKQuantitySample] { let joules = sample.quantity.doubleValueForUnit(HKUnit.jouleUnit()) 假设s
for sample in results as [HKQuantitySample] {
let joules = sample.quantity.doubleValueForUnit(HKUnit.jouleUnit())
假设
samples
是HKQuantitySample
数组:
// samples is an [HKQuantitySample]
var joulesSum : Double = 0.0 // Make sure that : it's a var not a let and Double is the right type
for aSample in samples {
joulesSum += aSample.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
或者在您的情况下:
var joulesSum : Double = 0.0
for aResult in results {
joulesSum += aResult.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
有帮助吗?如果没有,请添加上一个代码(创建
结果的位置)。假设样本
是HKQuantitySample
数组:
// samples is an [HKQuantitySample]
var joulesSum : Double = 0.0 // Make sure that : it's a var not a let and Double is the right type
for aSample in samples {
joulesSum += aSample.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
或者在您的情况下:
var joulesSum : Double = 0.0
for aResult in results {
joulesSum += aResult.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
有帮助吗?如果没有,请添加上一个代码(创建结果的地方)。我不熟悉Health Kit框架,但您可以使用reduce
对数组中的所有值求和:
let array = [1, 2, 3, 4, 5]
let sum = array.reduce(0, +) // sum == 15
0
是起始值,+
是对起始值和数组中的每个项执行的操作
查看您的代码,您可能需要提供一个闭包来减少,如下所示:
let samples = results as [HKQuantitySample]
let sum = samples.reduce(0.0) {
$0 + $1.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
我不熟悉Health Kit框架,但您可以使用reduce
对数组中的所有值求和:
let array = [1, 2, 3, 4, 5]
let sum = array.reduce(0, +) // sum == 15
0
是起始值,+
是对起始值和数组中的每个项执行的操作
查看您的代码,您可能需要提供一个闭包来减少,如下所示:
let samples = results as [HKQuantitySample]
let sum = samples.reduce(0.0) {
$0 + $1.quantity.doubleValueForUnit(HKUnit.jouleUnit())
}
Roman,你是对的,这样做比尝试使用for循环容易得多。它更安全,并且允许你将sum
定义为一个常量,这也很好。很高兴它起到了作用。罗曼,你是对的,这样做比尝试使用for循环容易得多。它更安全,而且它允许你将sum
定义为一个常量,这也很好。很高兴这有帮助。