二元运算符' *'不能应用于' int'类型的操作数并且'加倍

时间:2017-01-09 02:10:34

标签: swift swift3

我一直得到这个二元运算符错误"二元运算符' *'不能应用于' int'类型的操作数和' double' Error image

var listCount = imageNameList.count
var roll: Double = SUPCalculator.degrees(motion.attitude.roll)
if startDegree == 0.0 {
    self.startDegree = SUPCalculator.degrees(motion.attitude.roll)
}
var diff: Double = roll - startDegree
var diffChange: Double = diff / 50
// I get the error here 
var diffIndex = listCount * diffChange

1 个答案:

答案 0 :(得分:4)

Swift是强类型的,并且不会隐式强制执行。所以你需要一个显式的类型转换:

var diffIndex: Double = Double(listCount) * diffChange

这与强制转换不同,因为 Int 不是 Double 的子类。你正在做的是要求在运行时建立一个全新的 Double 值。

这是没有类型转换。在这里你得到错误。在控制台看到。它说,

  

过载' *'存在这些部分匹配的参数列表:(Int,Int),(Double,Double)

所以要么你们两个都做 Int ,要么两者都是 Double

without explicit type conversion

这是来自显式转换。看,这里没有错误:

with explicit type conversion