本周早些时候开始学习Swift,我正在做一些快速练习来学习它。
我试图将Celcius转变为Farenheit,这就是我所拥有的:
var tempInCelcius = 30
var tempInFarenheit = tempInCelcius * 1.8 + 32
但是我收到以下错误:
error: could not find an overload for '*' that accepts the supplied arguments
我错过了一些非常明显的东西吗?
答案 0 :(得分:1)
tempInCelcius
声明为Int
(整数文字的默认类型)
1.8
被推断为Double
。
在Swift中你不能用不同类型做数学。
解决方案是明确声明tempInCelcius
var tempInCelcius : Double = 30
或隐含地
var tempInCelcius = 30.0
为Double
。然后乘法工作。
var tempInFahrenheit = tempInCelcius * 1.8 + 32
与变量不同,像32
这样的字面数字必须具有不同的类型,并且推断为正确的操作类型(如果可能)