gpt4 book ai didi

swift - 二元运算符 '/' 不能应用于两个 'Double' 操作数

转载 作者:行者123 更新时间:2023-11-30 12:42:43 25 4
gpt4 key购买 nike

在尝试在 Swift 3 中执行此代码块时,我遇到了错误:二元运算符“/”无法应用于两个“Double”操作数

var array2 = [8, 7, 19, 20]

for (index, value) in array2.enumerated() {
array2[index] = Double(value) / 2.0
}

但这有效

var array2 = [Double]()
array2 = [8, 7, 19, 20]

for (index, value) in array2.enumerated() {
array2[index] = value / 2.0
}

为什么第一 block 代码不起作用?

最佳答案

该错误有点误导。

在第一组代码中,array2 被隐式声明为 Int 数组。因此,任何向 array2 索引赋值的尝试都需要 Int 值。

问题是 Double(value)/2.0 结果是 Double 值,而不是 Int。因此编译器正在寻找返回 Int/ 版本。该版本需要两个 Int 参数。由于您提供了两个 Double 参数,因此您会收到问题中提到的错误。

解决方案是将结果转换为 Int 或使用两个 Int 参数到 /

var array2 = [8, 7, 19, 20]

for (index, value) in array2.enumerated() {
array2[index] = Int(Double(value) / 2.0) // cast to Int
}

var array2 = [8, 7, 19, 20]

for (index, value) in array2.enumerated() {
array2[index] = value / 2 // Use two Int
}

在这种情况下,结果是相同的。 8 将替换为 47 将替换为 3 等。

第二组代码按原样工作,因为您声明数组用 Double 填充,因此所有内容都与正确的类型匹配。

关于swift - 二元运算符 '/' 不能应用于两个 'Double' 操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com