如何理解Swift 5.5中的Int Double转换?



扩展" the Swift Programming Language " (Swift 5.5) " Integer and float - point Conversion "中的例子:

3 + 0.14 // allowed
let three = 3
let rest = 0.14
3 + rest // allowed
0.14 + three // compile error
three + 0.14 // compile error

我不明白为什么最后两行被视为编译错误。有人能帮我解释一下吗?谢谢。

有两个基本规则:

  • 如果可能的话,可以隐式地转换没有类型注释的数字文字
  • 常量或变量初始化为固定类型,该类型不能更改。浮点字面值变为Double,整数字面值变为Int

所以threeInt,0.14Double

3 + rest可以工作,因为3可以被推断为Double。
但是0.14不能被推断为Int,所以最后两行编译失败。

相关内容

  • 没有找到相关文章

最新更新