a和b的总和减去c是多少?

时间:2018-12-19 14:45:03

标签: swift

我在进行Swift Apprentice挑战时,遇到了一些问题。

第二章中的挑战:

a和b的总和减去c是多少?

let a = 4
let b: Int32 = 100
let c: UInt8 = 12

当变量是混合类型时,似乎不能加减。

那么这个问题的结果是什么?

2 个答案:

答案 0 :(得分:4)

Swift禁止在不同数值类型之间进行数学运算。写作:

let result = a + b - c // error

...是错误。除非您有特殊要求,例如所有操作数都是非负数,否则经验法则是将所有内容都转换为最宽的数据类型,在这种情况下为Int

let result = a + Int(b) - Int(c) // 92

答案 1 :(得分:1)

完整的答案我会说

“ Swift不允许您使用不同的数学类型进行数学运算。表达式a + b-c将引发错误,因此我们需要将所有值转换为相同的类型:

let result = a+Int(b)-Int(c)

(如代码不同在他们的回答中所说,您应该将值“提升”为最宽/最丰富的类型(例如,从较小的整数类型到较大的类型,从无符号到有符号,或者从整数到浮点,如果有任何值是浮点数。})