仓颉不支持不同类型之间的隐式转换,类型转换必须显式地进行。下面将依次介绍数值类型之间的转换,Char和UInt32之间的转换,以及is和as操作符。
5.1 数值类型之间的转换
对于数值类型(包括Int8,Int16,Int32,Int64,IntNative,UInt8,UInt16,UInt32,UInt64,UIntNative, Float16,Float32,Float64),仓颉支持使用 T(e) 的方式得到一个值等于e,类型为T的值,其中,表达式e的类型和T可以是上述任意数值类型。
数值类型之间的类型转换,示例代码如下:
main() {

let a: Int8 = 10
let b: Int16 = 20

//int8转int16
let r1 = Int16(a)
println("r1的类型为Int16,r1= ${r1}")

//int16转int8
let r2 = Int8(b)
println("r2的类型为Int8,r2=${r2}")

let c: Float32 = 1.0
let d: Float64 = 1.123456789

//Float32转float64
let r3 = Float64(c)
println("r3的类型为Float64,r3=${r3}")

//float64转float32
let r4 = Float32(d)    
println("r4的类型为Float32,r4=${r4}")

let e: Int64 = 1024
let f: Float64 = 1024.1024
//int64转float64
let r5 = Float64(e)
println("r5的类型为Float64,r5=${r5}")
//float64转int64
let r6 = Int64(f)
println("r6的类型为Int64,r6=${r6}")

}
上述代码的执行结果如下:
r1的类型为Int16,r1= 10
r2的类型为Int8,r2=20
r3的类型为Float64,r3=1.000000
r4的类型为Float32,r4=1.123457
r5的类型为Float64,r5=1024.000000
r6的类型为Int64,r6=1024


赵jiani99099
1 声望0 粉丝