前言
golang的基本数据类型和很多语言都类似,但是go中int 、float等类型区分32位还是64位,我不知道为什么这样子区分,可能是更加严谨吧,还有golang的string类型也和其它面向对象语言比如java,python有很大的不同。 golang和python一样 也有复数类型,complex128 complex64 ,和float有很大的联系还有需要注意一点的是go中不同类型之间是不能进行大于小于比较的,int32 和int64也是不可以的 而且运算也只能是同类型之间运算
var i int =1 这样是会报错的
f5 :=i+f1
f5 :=1+1.0 这样不会报错
float和complex
- go中是没有float类型的 只有float64 32 尽量使用float64
- float类型后面+i就会推断位complex128类型 其real为0
//float go没有这种类型 只有float32 64 尽量使用float64
var f1 float64
f1 = 1 //还是浮点数
f2 := 1.0
f3 := f1 + f2 //只能浮点数和浮点数相加
// var iiii int =1 这样是会报错的
// f5 :=iiii+f1
f5 :=1+1.0 //这样不会报错 为float64
println(f3,f5)
fmt.Println(reflect.TypeOf(f3))
f4 :=1.0i
println("========")
println(real(f4),imag(f4))
fmt.Printf("---%T----",f4) //complex128
//=================复数===========================
//复数都是浮点类型
var c1 complex128
c1 = 1 + 12i
c1 = c1+1.0 //可以直接运算的 1.0的 image=0.0
//c1 = c1+float64(1.0) 这样会报错
c2 := 1 + 12i
c3 :=complex(1,12)
c4 :=c1+c3
println(c1,c2,c3)
println(imag(c4))
var fc complex128
fc =<