在尝试在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
}
为什么第一段代码不起作用?
该错误有点误导。
在第一组代码中,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
将被替换为4
。7
将被替换为3
,等等。
第二组代码按原样工作,因为您声明要填充的数组,Double
因此所有内容均与正确的类型匹配。
在Swift 2.0中获取此错误。 二进制运算符“|”不能应用于两个UIViewAutoresizing操作数 代码如下:
尝试比较两个闭包时出错: 二进制运算符“==”不能应用于两个()- 我应该怎么做? 例如:
问题内容: 我正在尝试通过以下方式为本地通知注册我的应用程序: 在Xcode 7和Swift 2.0中,出现错误。请帮我。 问题答案: 在Swift 2中,通常要执行此操作的许多类型已更新为符合OptionSetType协议。这允许使用类似数组的语法,并且在您的情况下,可以使用以下语法。 与此相关的是,如果要检查选项集是否包含特定选项,则不再需要使用按位与和nil检查。您可以简单地询问选项集是否包
我正在尝试通过以下方式注册我的本地通知应用程序: 在Xcode 7和Swift 2.0中,I get error
我正在尝试构建一个简单的Swift应用程序来计算增值税(增值税=20%)。 因为某种原因我一直 二进制运算符*不能应用于Int和Double类型的操作数 在线上
我在练习一些代码,遇到了一些问题。 这是密码 所有的代码都很好,打印得很好,但是最后一行带来了一个问题。 我以为是macFood。水果是数组。 因为macFood。水果=[水果(名称:“苹果”,容量:1),水果(名称:“香蕉”,容量:2)]工作。 所以我想我可以使用'='运算符添加另一个元素。 但它在最后一行崩溃了,macFood。水果=[水果(名称:“葡萄”,容量:3)] 错误消息为 “二进制运