得到`(UInt8.min + UInt8.max)* 3`到控制台

时间:2014-06-04 22:26:52

标签: swift

使用swift,当我输入下面的代码时,我无法获得sumInt号码来控制?

    let minValue=UInt8.min
    let maxValue=UInt8.max
    let sumInt=(maxValue+minValue)*3
    println(sumInt)

我改变代码后如下

    let minValue=UInt8.min
    let maxValue=UInt8.max
    let sumInt:Int=(maxValue+minValue)*3
    println(sumInt)

我收到了错误

  

无法找到' *'接受提供的参数

我怎样才能做对?

1 个答案:

答案 0 :(得分:2)

因为从总和中获得的类型再次是UInt8 ..尝试

 let minValue=UInt8.min
    let maxValue=UInt8.max
    let sumInt:Int8=(maxValue+minValue)*3 //overflow
    println(sumInt)

或者

let minValue=UInt8.min
let maxValue=UInt8.max
let sumInt:Int=(Int)(maxValue+minValue)*3
println(sumInt)

但请注意,数字sumInt现在将有效,因为它不再是一个最高只有255的UInt8,它在第一个代码片段中溢出。