【问题标题】:Could not find an overload for '*' that accepts the supplied arguments找不到接受提供的参数的“*”的重载
【发布时间】:2015-08-08 10:53:03
【问题描述】:

本周早些时候开始学习 Swift,我正在做一些快速练习来学习它。

我正在尝试将摄氏度转换为华氏度,这就是我所拥有的:

    var tempInCelcius = 30

    var tempInFarenheit = tempInCelcius * 1.8 + 32

但是我得到以下错误:

error: could not find an overload for '*' that accepts the supplied arguments

我在这里遗漏了一些非常明显的东西吗?

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    tempInCelcius 被声明为 Int(整数文字的默认类型)。
    1.8 被推断为 Double

    在 Swift 中,你不能用不同的类型进行数学运算。

    解决方案是显式声明tempInCelcius

    var tempInCelcius : Double = 30
    

    或隐含

    var tempInCelcius = 30.0
    

    作为Double。然后乘法起作用。

    var tempInFahrenheit = tempInCelcius * 1.8 + 32
    

    不像32这样的变量字面量数字必须有不同的类型,并且被推断为正确的操作类型(如果可能的话)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多