使用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,它在第一个代码片段中溢出。