Swift类型推断和基本加法

时间:2018-07-18 17:23:29

标签: swift

Swift的新手和学习数据类型。

 let partNumber = 3.2
 let wholeNumber = 2
 partNumber + wholeNumber //Binary operator '+' cannot be applied to operands of type 'Double' and 'Int'
 3.2 + 2 // outputs 5.2 

我知道partNumberDouble类型,而wholeNumberInt。我不明白的是为什么当我尝试将两个常量加在一起时为什么会出现操场错误。为了增加混淆,当未将其分配为常量时,加法有效。

3 个答案:

答案 0 :(得分:3)

+运算符不支持以这种方式将Double和Integer一起添加

如果您修改代码以确保WholeNumber是Double类型,那么它将起作用

let partNumber = 3.2
let wholeNumber: Double = 2
let result = partNumber + wholeNumber

答案 1 :(得分:1)

所有内容都在Swift书中Numeric Type Conversion下的内容中。

标题为“整数和浮点转换”小节的一些相关引号:

  

整数和浮点数字类型之间的转换必须明确

这之后是与您的代码相似的示例。您的代码需要强制转换:

const mongo = require('mongodb');
module.exports = function(context) {
  context.res = {
    body: 'Hello world'
  };

  context.done();
}

和:

  

用于组合数字常量和变量的规则与用于数字文字的规则不同。文字值3可以直接添加到文字值0.14159中,因为数字文字本身本身没有显式类型。仅在编译器对其求值时才推断出它们的类型。

其中涵盖了问题的第二部分。

答案 2 :(得分:0)

  

为了增加混乱,当未将其分配为常量时,这种加法有效。

这根本不会“增加混乱”。这是答案。文字类型(您称为“常量”)的数字类型之间存在隐式强制,但变量没有。就这么简单。