开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
布尔类型分析
1. 结构:
关键字 标识符 布尔数据类型 = 赋值
结构分解:
解析: 布尔类型的数据声明关键字为bool,且布尔数据类型可取值一般只有两种true和false两种,当数据类型取值为true时,则代表为真,表示成立,二进制时则表示1为真,当数据类型取值为false,则代表为假,表示不成立,二进制时则表示0为假。
2. 举例: 声明一个布尔类型且代表为真输出为“b = false”。
var b bool = false //布尔类型的初始化赋值
fmt.Println("b=", b) //语句&表达式输出
终端输出:
结构解析:
var b bool = false //布尔类型的初始化赋值
布尔类型的初始化赋值* :* Go语言是静态类型语言,因此变量(variable)是有明确类型的。变量通过关键字Var来命名标识符再通过明确数据类型来完成变量的完整声明的过程。(在声明过程中数据类型要明确写为bool类型) 编译器也会检查函数调用中,来验证变量类型的正确性。
fmt.Println("b=", b) //语句&表达式输出
语句&表达式输出:fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。函数内语句依照main函数内依次执行。
整型类型分析
1. 结构:
关键字 标识符 整数数据类型 = 赋值
结构分解:
解析: 整型是所有编程语言里最基础的数据类型。且需要注意的是整数类型的声明,都是按照Go的声明规则进行声明,需要注意的是,不同大小的整型类型是不能直接比较,不能直接运算,如果需要对两个不同类型的值执行运算操作,需要进行类型转换。
整数类型释义:Go语言严格来说一共有9种不同大小的整型,无符号四种,有符号四种,还有一种uintptr类型(多用于底层编程)。其中int8、int16、int32和int64这四种不同大小的有符号整型数类型分别对应8、16、32、64b大小的有符号整型数;对应的无符号整型数分别是uint8、uint16、uint32、uint64;除了指定整数位数以外,也可以直接使用int和uint类型。Go语言可以根据不同平台的实现对int进行调整,既可以是int32,也可以是int64,uint同理。
2. 整数基础类型一览:
| 类型 | 长度(单位:字节) | 说明 | 值范围 | 默认值 |
|---|---|---|---|---|
| int | 1 | 带符号8位整型 | -128~127 | 0 |
| uint8 | 1 | 无符号8位整型,与 byte 类型等价 | 0~255 | 0 |
| int16 | 2 | 带符号16位整型 | -32768~32767 | 0 |
| uint16 | 2 | 无符号16位整型 | 0~65535 | 0 |
| int32 | 4 | 带符号32位整型,与 rune 类型等价 | -2147483648~2147483647 | 0 |
| uint32 | 4 | 无符号32位整型 | 0~4294967295 | 0 |
| int64 | 8 | 带符号64位整型 | -9223372036854775808~9223372036854775807 | 0 |
| uint64 | 8 | 无符号64位整型 | 0~18446744073709551615 | 0 |
| int | 32位或64位 | 与具体平台相关 | 与具体平台相关 | 0 |
| uint | 32位或64位 | 与具体平台相关 | 与具体平台相关 | 0 |
| uintptr | 与对应指针相同 | 无符号整型,足以存储指针值的未解释位 | 32位平台下为4字节,64位平台下为8字节 | 0 |
3. 举例: 声明一个整数类型并赋值为100输出。
var z1 int //整数类型变量的声明
z1 = 100 //变量的赋值
fmt.Print("数据类型z1=",z1) //语句&表达式输出
终端输出:
结构解析:
var z1 int //整数类型变量的声明
整数类型变量的声明: Go语言是静态类型语言,因此变量(variable)是有明确类型的。整数类型的声明,都是按照Go的声明规则进行声明,通过关键字Var来命名标识符再通过明确变量类型来完成整数类型变量的完整声明的过程。此外* *Go语言可以根据不同平台的实现对int进行调整,既可以是int32,也可以是int64,uint同理。**编译器也会检查函数调用中,来验证变量类型的正确性。
z1 = 100 //变量的赋值
变量赋值: 在Go语言中变量通过等号“=”来赋值,通过“=”可以将指定的数据指给变量,从而使变量表示这个数据相应的内存地址,在之后的数据流转操作的过程中,通过使用变量操作,让变量所对应的数据进行交互处理从而完成数据的各类处理。
fmt.Print("数据类型z1=",z1) //语句&表达式输出
语句&表达式输出:fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。函数内语句依照main函数内依次执行。
字符串类型分析
1. 结构:
关键字 标识符 字符串数据类型 = 赋值
赋值: 字符串是一种值类型,所赋值是一个不可改变的字节序列。
结构分解:
解析: Go语言中的字符串以原生数据类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64 等)一样。Go 语言里的字符串的内部实现使用UTF-8编码。字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符。另外字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,更深入地讲,字符串是字节的定长数组。
2. 举例:声明一个字符串数据类型并输出:“知链”。
var string1 string = "知链" //字符串类型变量的初始化
fmt.Println(string1) //语句&表达式输出
终端输出:
结构解析:
var string1 string = "知链" //字符串类型变量的初始化
字符串类型变量的初始化: Go语言是静态类型语言,因此变量(variable)是有明确类型的。字符串是一个或多个字符(字母,数字,符号)的序列,可以是常数或变量。 且字符串由Unicode组成 ,是不可变的序列,这意味着它们是不变的。(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。通过关键字Var来命名标识符再通过明确变量类型来完成字符串类型变量的完整声明的过程。 编译器也会检查函数调用中,来验证变量类型的正确性。从另一方面讲字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,更深入地讲,字符串是字节的定长数组。
fmt.Println(string1) //语句&表达式输出
语句&表达式输出:fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。函数内语句依照main函数内依次执行。
浮点类型分析
1. 结构:
关键字 标识符 浮点类型 = 赋值
结构分解:
解析: Golang 浮点类型有固定的范围和字段长度,不受具体OS(操作系统)的影响。,且在Go语言中的默认声明为float64类型,浮点数在机器中存放时主要分成三部分存储,分别为符号位,指数位,尾数位,而在具体的存储过程中精度会有丢失。 这些浮点数类型的取值范围可以从很微小到很巨大。浮点数的范围极限值可以在math包找到。常量 math.MaxFloat32表示float32能表示的最大数值,大约是 3.403e38;对应的math.MaxFloat64常量大约是 1.798e308。它们分别能表示的最小值近似为 -3.403e38和 -1.798e308。
2. 举例: 声明一个32位浮点类型并输出结果:“2018.0516”。
var f float32 = 2018.0516 //浮点类型变量的初始化
fmt.Println(f) //语句&表达式输出
终端输出:
结构解析:
var f float32 = 2018.0516 //浮点类型变量的初始化
浮点类型变量的初始化: Go语言是静态类型语言,因此变量(variable)是有明确类型的。浮点类型变量的初始化通过关键字Var来命名标识符再通过明确浮点类型变量类型来完成变量的完整声明的过程。且Go语言支持两种浮点型数据格式:float32 和 float64。这两种浮点型数据格式遵循 IEEE 754 标准。一个float32类型的浮点数可以提供大约6个十进制数的精度,而float64则可以提供约15个十进制数的精度。 同时编译器也会检查函数调用中,来验证变量类型的正确性。
fmt.Println(f) //语句&表达式输出
语句&表达式输出:fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。函数内语句依照main函数内依次执行。
字符类型分析
1. 结构:
关键字 标识符 字符数据类型 = 赋值
结构分解:
解析: Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。go里面没有字符类型(char),而是使用byte(uint8)和rune(int32)来代表字符。声明一个字符时,默认是rune类型,除非特别定义。 一个string变量既可以被拆分为字符,也可以被拆分为字节;前者使用rune[]切片表示,后者使用byte[]切片表示。
一个rune值就是代表一个字符,在输入输出中经常看到类似’\U0001F3A8’,’\u2665’的就是一个rune字符(unicode字符),其中的每位都是一个16进制数。
2. 举例: 声明一个字符类型的字节,要求输出ASCII 码表中的字符A。
var a byte = 65 //字符类型变量的初始化
fmt.Printf("a = %c\n", a) //语句&表达式输出
终端输出:
结构解析:
var a byte = 65 //字符类型变量的初始化
字符类型变量的初始化: Go语言是静态类型语言,因此变量(variable)是有明确类型的。变量通过关键字Var来命名标识符再通过明确变量类型来完成变量的完整声明的过程。 编译器也会检查函数调用中,来验证变量类型的正确性。go没有没有专门的字符类型,如果要存储单个的字符或字母,一般用byte来保存。Byte(即是uint8),8位,0~255,一个字节 ,表示的是 ASCII 码表中的一个字符。如果我们保存的字符在ASCII表中,比如[0-1,a-z,A-Z...],可以直接用byte。如果保存的字符对应码值大于255,此时可以用int型保存。但如果我们需要字符格式输出,则必须用格式化输出。
fmt.Printf("a = %c\n", a) //语句&表达式输出
语句&表达式输出:fmt.Println(...) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。函数内语句依照main函数内依次执行。