get `(UInt8.min + UInt8.max) * 3` to console



使用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)

我得到一个错误

找不到接受所提供参数的"*"的重载

我怎样才能使它正确?

这是因为你从sum中得到的类型再次是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现在是有效的,因为它不再是UInt8,只有255,它在第一个代码片段中溢出。

最新更新