1、go语言执行过程分析
【1】执行流程分析
通过 go build 进行编译
运行上一步生成的可执行文件
通过 go run 命令直接运行
【2】上述两种执行流程的区别
- 在编译时,编译器会将程序运行时依赖的库文件包含在可执行文件中,所以可执行文件会变大很多
- 通过go build的方式先编译生成可执行文件,我们可以将该可执行文件拷贝到没有go环境的机器上任然可以执行
- 通过 go run 命令来操作go源代码,在另一台机器上想要运行那么就必须要有go的环境
- go run 的运行时间比go build 长一些
2、语法注意事项
- 源文件以“.go”为扩展名
- 程序的执行入口是main函数
- 严格区分大小写
- 方法由一条条语句构成,每个语句后不需要写分号(Go语言会在每行末尾自动增加分号,体现了Go语言的简洁性)
- Go编译器是逐行编译代码的,建议一行只写一条语句,当然,如果要写多条语句,需要手动添加分号进行划分(不建议)
- 定义的变量 || import的包没有使用到,编译器报错
- 大括号成对出现,且有具体的规定即:
package main
import "fmt"
func main() { //正确写法
fmt.Println("测试{}书写方式")
}
func main()
{ //错误写法,编译器报错
fmt.Println("测试{}书写方式")
}
3、代码风格
1、注释:用于解释说明代码,提高程序的可读性
go语言支持两种注释风格,分别是C语言的/**/代码块注释 和 C++风格的//行注释
VScode中的注释快捷键:CTRL + / shift + alt + a
2、注意缩进
3、运算符两边加空格
4、行长约定
一行最多不超过80个字符,超过的使用换行展示
4、常见数据类型介绍
主要分为两大类,分别是基本数据类型和复杂(派生)数据类型
4.1 基本数据类型
主要包括:数值型、字符型、布尔型、字符串
4.1.1 数值型
整数类型
类型 | 有无符号 | 占用存储空间 | 表示的数据范围 |
---|---|---|---|
int8 | 有符号 | 1字节 | -27~27-1 |
int16 | 有符号 | 2字节 | -215~215-1 |
int32 | 有符号 | 4字节 | -231~231-1 |
int64 | 有符号 | 8字节 | -263~263-1 |
uint8 | 无符号 | 1字节 | 0~28-1 |
uint16 | 无符号 | 2字节 | 0~216-1 |
uint32 | 无符号 | 4字节 | 0~232-1 |
uint64 | 无符号 | 8字节 | 0~264-1 |
int | 有符号 | 32位OS:4字节 64位OS:8字节 | -231~231-1 -263 ~ 263-1 |
uint | 无符号 | 32位OS:4字节 64位OS:8字节 | 0~232-1 0 ~ 264-1 |
rune | 有符号 | 等价int32 | -231~231-1 |
byte | 无符号 | 等价uint8 | 0~28-1 |
针对上述的内容做一些针对性的验证,验证代码如下:
建议:Golang程序中在使用整型变量时,遵守保小不保大的原则,即:在保证程序正确运行的前提下,尽量使用占用空间小的数据据类型
浮点数类型
常见的有:
float32:4字节,表示范围:-3.403E38~3.403E38
float64:8字节,表示范围:-1.798E308~1.798E308
浮点数可能会有精度的损失,通常情况下建议使用float64
4.1.2 字符型
字符型本质上是一个整数,也可以直接参与运算,输出字符的时候,会将对应的ASCII码输出
具体示例如下:
4.1.3 布尔型
true or false
1字节,多用于条件判断
4.1.4 字符串
字符串就是一串固定长度的字符连接起来的字符序列
基本数据的默认值
数据类型 | 默认值 |
---|---|
整数类型 | 0 |
浮点类型 | 0 |
布尔类型 | false |
字符串类型 | “” |
4.1.5基本数据类型之间的转换
1、Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)
2、语法:
表达式T(v) 将值v转换为类型T
T:数据类型
v:需要转换的变量
基本数据类型 转 string
方式一 :fmt.Sprintf(“%参数”,表达式)
方式二:使用strconv包中的相关函数
string 转 基本数据类型
方式:使用strconv包下的相关函数实现