go基础之基础数据类型

2018-12-28  本文已影响13人  吴世浩

一、好言

一个人的闯荡,有时候也会疲惫,也会迷茫,但我的梦想,仍在发光!


二、

2、1 整型

go语言同时提供了有符号和无符号类型的整数运算。这里有int8、int16、int32、int64四种继而不同大小的有符号整形数类型,分别对应8、16、32、64bit大小的有符号整形数,于此对应的是uint8、uint16、uint32和uint64四种无符号整形数类型。

还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针。uintptr类型只有在底层编程才需要,特别是go语言和c语言函数库或操作系统接口相交互的地方。

有符号整数采用2的补码形式表示,也就是最高位bit位用作表示符号位,一个n-bit的有符号数的值域是从-2 的n-1次方到2的n-1次方-1。无符号整数的所有bit位都用于表示非负数,值域是0到2的n次方减1,比如,int8类型整数的值域是从-128到128,而uint8类型整数的值是从0到255。

2、2 浮点型

go语言提供两种精度的浮点数,float32和float64。
一个float32类型的浮点数可以提供大约6个十进制的精度,而float64则可以提供约15个十进制的精度;通常应该优先使用float64类型,因为float32类型的累计计算误差很容易扩散,并且float32能精确表示的正整数并不是很大,因为float32的有效bit只有23个,其他的bit位用于指数和符号;当整数大于23bit能表达的范围时,float32的表示将出现误差。

math包中除了提供大量常用的数据函数外,还提供了IEEE754浮点数标准中定义的特殊值的创建和测试:正无穷大和负无穷大,分别用于表示太大溢出的函数和除0的结果;含有Nan函数,一般用于表示无效的除法操作结果0/0或Sqrt(-1)

nan := math.NaN()
math.isNan(nan) //判断是否是NaN

2、3 复数

var x complex128 = complex(1, 2) // 1+2i
var y complex128 = complex(3, 4) // 3+4i
fmt.Println(x*y)                 // "(-5+10i)"
fmt.Println(real(x*y))           // "-5"
fmt.Println(imag(x*y))           // "10"

这里的x*y,结果是(-5+10i)这个怎么算出来的没搞懂?

2、3 布尔型

一个布尔类型的值只有两种:true和false

2、4字符串

字符串的值是不变的:一个字符串包含的字节序列永远不会被改变,当然我们也可以给一个字符串变量分配一个新字符串值

上一篇下一篇

猜你喜欢

热点阅读