go提供了10种类型用于表示整数,由于每种整数类型的取值福范围不同,所以应该根据场景所需的范围来决定使用何种整数类型。
还有2个是int和uint,这2个类型是根据计算机架构自动选择合适的位长。在32位机器上就是32位值,在64位机器上就是64位值。
可以使用Printf函数的&T来查看变量的类型
abc := 43223
fmt.Printf("type %T for %v\n",abc,abc)
输出
type int for 43223
避免在Printf函数中使用同一个变量两次,可以添加[1]到第二个变量中
fmt.Printf("type %T for %[1]v\n",abc)
在CSS中颜色范围为0-255,正好和uint8无符号整数相同,使用uint8来表示颜色正合适。
var red,green,blue uint8 = 0,155,250
整数类型虽然不会像浮点类型那样因为舍入错误而导致不精确,但是整数类型也有它们自己的问题,那就是有限的取值范围,如果计算超出了范围,就会从最小开始。例如unit8范围在0-255,如果超过255就会从0开始。
var red uint8 = 255
red++
fmt.Println(red)
var number int8 = 127
number++
fmt.Println(-128)
基于Unix的操作系统都使用协调世界时1970年1月1日以来的秒数来表示时间,但是这个秒数在2038年将超过20亿,大致相当于int32类型的最大值。幸运的是32位整数无法存储,可以使用64位整数解决。使用time包的Unix函数,改函数接受两个int64类型的值作为参数。
fmt.Println(time.Unix(13511670900, 0))