【Go语言0基础学习之旅#4】 Golang基本数据类型

【Go语言0基础学习之旅#4】 Golang基本数据类型

  • 一、整数类型
    • 1.1 整数的类型
    • 1.2 变量数据类型的查看
    • 1.3 变量占用字节大小的查看
  • 二、浮点型\小数类型
    • 2.1 类型
    • 2.2 浮点型常量的两种表现形式
  • 三、字符类型
    • 3.1 字符类型基本使用
    • 3.2 使用格式化输出对应字符
    • 3.3 溢出现象的解决
    • 3.4 字符类型使用细节
  • 四、布尔类型(bool类型)
  • 五、字符串类型
    • 5.1 两种表现形式
    • 5.2 基本使用
    • 5.3 使用细节
  • 六、Golang基本数据的默认值(零值)

一、整数类型

1.1 整数的类型

类型 有无符号 占用存储空间 表数范围
int8 1字节 -128 ~ 127
int16 2字节 -215 ~ 215-1
int32 4字节 -231 ~ 231-1
int64 8字节 -263 ~ 263-1
类型 有无符号 占用存储空间 表数范围
uint8 1字节 0 ~ 255
uint16 2字节 0 ~ 216-1
uint32 4字节 0 ~ 232-1
uint64 8字节 0 ~ 264-1
类型 有无符号 占用存储空间 表数范围 备注
int 32位系统4个字节;64位系统8个字节 32位系统:-231 ~ 231-1;64位系统:-263 ~ 263-1
uint 32位系统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 类型

类型 占用存储空间 表数范围
单精度float32 4字节 -3.403E38 ~ 3.403E38
双精度float64 8字节 -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码表:

字符 码值(十进制)
a 97
0 48

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或false 1个字节 逻辑运算、程序流程控制

五、字符串类型

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
浮点型float32 0
浮点型float64 0
字符串 “”
布尔类型 false

fmt.Printf(“变量值=%v”,变量),%v表示按照变量的原值输出。

你可能感兴趣的:(Go语言学习之旅,golang,学习,开发语言,vscode)