一、整数类型

1.1 整数的类型

类型有无符号占用存储空间表数范围
int81字节-128 ~ 127
int162字节-215 ~ 215-1
int324字节-231 ~ 231-1
int648字节-263 ~ 263-1
类型有无符号占用存储空间表数范围
uint81字节0 ~ 255
uint162字节0 ~ 216-1
uint324字节0 ~ 232-1
uint648字节0 ~ 264-1
类型有无符号占用存储空间表数范围备注
int32位系统4个字节;64位系统8个字节32位系统:-231 ~ 231-1;64位系统:-263 ~ 263-1
uint32位系统4个字节;64位系统8个字节32位系统:0 ~ 232-1;64位系统:0 ~ 264-1
rune与int32一样(4字节)-231 ~ 231-1等价int32,表示一个Unicode码
byte与uint8等价(1字节)0 ~ 255当要储存字符时选用byte

1.2 变量数据类型的查看

fmt.Printf(“%T”,变量)

1.3 变量占用字节大小的查看

变量占用字节大小的查看:(unsafe包中的函数)
fmt.Printf(“%d”,unsafe.Sizeof(变量))

二、浮点型\小数类型

2.1 类型

类型占用存储空间表数范围
单精度float324字节-3.403E38 ~ 3.403E38
双精度float648字节-1.798E308 ~ 1.798E308

备注:float64的精度比float32的精度高。

1、Golang浮点型默认声明为float64类型。
2、在Golang中没有float和double类型。
3、浮点数=符号位+指数位+尾数位。尾数部分可能丢失,造成精度损失。
4、浮点数都是有符号的。
5、通常情况下应该使用float64,因为它比float32更精确。

2.2 浮点型常量的两种表现形式

表现形式举例
十进制数形式如:1.23、0.467、.432(必须有小数点)
科学计数法形式如:3.2843e2=3.2843×102;3.2843E-2=3.2843÷102;3.2843E2=3.2843×102

三、字符类型

3.1 字符类型基本使用

1、在Golang中没有专门的字符类型(char),要储存单个字符或者字母,使用byte来储存。
2、Go的字符串由字节组成。

eg:

package main

import "fmt"

func main() {
	var c1 byte = 'a'  
	var c2 byte = '0'
	fmt.Println("c1 = ", c1, "c2 = ", c2)
}

//输出结果:c1 =  97 c2 =  48

ASCII码表:

字符码值(十进制)
a97
048

3.2 使用格式化输出对应字符

eg:

package main

import "fmt"

func main() {
	var c1 byte = 'a'
	var c2 byte = '0'
	fmt.Printf("c1 = %c , c2 = %c", c1, c2)
}

//输出结果:c1 = a , c2 = 0

3.3 溢出现象的解决

eg:

	var c3 int = '南'
	fmt.Printf("c3 = %c,c3对应的码值为%d", c3, c3)
//输出结果:c3 = 南,c3对应的码值为21335

3.4 字符类型使用细节

1、字符常量是用单引号括起来的单个字符,如:var c1 byte = ‘a’。
2、Golang中的字符使用UTF-8编码,兼容ASCII码。(可以认为UTF-8编码包含ASCII编码)。
3、在Golang中一个英文字母占1个字节,汉字占3个字节。
4、在Golang中,字符的本质是一个整数,直接输出即为该字符对应的UTF-8编码的码值。
5、数字通过格式化输出%c时,会输出该数字对应的Unicode字符。eg:
var c int = 21335
fmt.Printf(“c = %c”, c)
//输出结果:c = 南
6、字符类型按照Unicode码值进行运算。
7、Golang中的字符编码统一使用UTF-8编码。

四、布尔类型(bool类型)

取值占用大小应用
只有true或false1个字节逻辑运算、程序流程控制

五、字符串类型

1、Go的字符串是由单个字节连接起来的。
2、Go字符串的字节使用UTF-8编码标识Unicode文本。

5.1 两种表现形式

1、使用双引号,会识别双引号中的转义字符。
2、使用反引号,以字符串的原生形式输出,包括换行和特殊字符。

eg:

package main

import "fmt"

func main() {
	var str1 string = `
	package main

	import "fmt"
	
	func main() {
		var str1 string = "Hello World!"
		fmt.Println(str1)
	}
	`
	fmt.Println(str1)
}

//输出结果:
// package main

// import "fmt"

// func main() {
// 		var str1 string = "Hello World!"
// 		fmt.Println(str1)
// }


5.2 基本使用

eg:

package main

import "fmt"

func main() {
	var str1 string = "Hello World!"
	fmt.Println(str1)
}

//输出结果:Hello World!

5.3 使用细节

注意:Golang中的字符串赋值之后不可变,不能修改。

字符串拼接方式:

package main

import "fmt"

func main() {
	var str1 string = "hello " + "world"
	str1 += " nice!"

	fmt.Println(str1)
}

//输出结果:hello world nice!

package main

import "fmt"

func main() {
	var str1 string = "hello " +
		"world" +
		"!"

	fmt.Println(str1)
}

//输出结果:hello world!

六、Golang基本数据的默认值(零值)

数据类型默认值
整型0
浮点型float320
浮点型float640
字符串“”
布尔类型false
fmt.Printf(“变量值=%v”,变量)