Go语言快速入门4|青训营

70 阅读2分钟

一、整数类型(不可以存小数部分;范围有限;通常根据数值范围来选取整数类型)

5种整数类型是有符号的(能表示正数、0、负数);5种整数类型是无符号的(能表示正数、0)

最常用整数类型是int:

var year int = 2018

无符号整数类型是uint:

var month uint = 2

以下三种语句是等价的:

yearr := 2018
var year = 2018
var year int = 2018

整数类型包括有符号和无符号的,实际上一共是8种类型(它们的取值范围不相同且CPU架构与硬件架构无关)

image.png

而int和uint是针对目标设备优化的类型

二、打印数据类型

1、在Printf里使用%T就可以打印出数据的类型

year := 2018
fmt.Printf("Type %T for %v\n",year,year)  ////Type int for 2018

a := "text"
fmt.Printf("Type %T for %[1]v\n", a)   //Type string for text

b := 42
fmt.Printf("Type %T for %[1]v\n", b)  //Type int for 42

c := 3.14
fmt.Printf("Type %T for %[1]v\n", c)   //Type float64 for 3.14

d := true
fmt.Printf("Type %T for %[1]v\n", d)   //Type bool for true

三、十六进制表示法

Go语言里,在数前面加上0x前缀,就可以用十六进制的形式来表示数值

var red, green, blue uint8 = 0, 141, 213
var red, green, blue uint8 = 0x00, 0x8d, 0xd5

打印十六进制的数,使用%x格式化动词

fmt.Printf("%x %x %x", red, green, blue)  //0 8d d5

也可以指定最小宽度和填充:

var red, green, blue uint8 = 0, 141, 213
fmt.Printf("color: #%2x%02x%02x;", red, green, blue)  //color: #008dd5;

四、整数环绕

所有的整数类型都有一个取值范围,超出这个范围,就会发生“环绕”

var red uint8 = 255
red++
fmt.Println(red)

var number int8 = 127
number++
fmt.Println(number)   
//0
  -128

五、打印每个bit

使用%b格式化动词

var green uint8 = 3
fmt.Printf("%08b\n",green)
green++
fmt.Printf("%08b\n",green)
//00000011
  00000100

六、整数类型的最大值、最小值

math包里,为与架构无关的整数类型,定义了最大、最小值常量:

 math.MaxInt16
 math.MinInt64

而int和uint,可能是32或者64位的。