You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.5 KiB
77 lines
2.5 KiB
GO知识的学习
|
|
Go 程序底层执行流程
|
|
1. 编译器读取 .go 源码
|
|
2. 检查语法错误(package main / main函数 必须存在)
|
|
3. 编译为机器码(CPU可直接执行)
|
|
4. 从 main() 函数第一行开始执行
|
|
5. 逐行运行代码,执行完毕程序退出
|
|
Go 开发核心注意事项
|
|
可执行程序必须双件套
|
|
只有 package main + func main() 才能运行,缺一不可
|
|
禁止未使用的变量 / 导入包
|
|
短变量 := 有严格限制
|
|
只能在函数内部使用
|
|
同一作用域不能重复声明同一个变量
|
|
全局变量只能用 var,不能用 :=
|
|
大小写决定访问权限
|
|
大写字母开头:公共(对外可访问,对标 Java public)
|
|
小写字母开头:私有(仅包内可访问,对标 Java private)
|
|
项目与依赖
|
|
必须用 Go Modules,别碰 GOPATH
|
|
所有项目必须执行:go mod init 项目名
|
|
对标 Java 的 Maven/Gradle,管理依赖
|
|
依赖自动清理
|
|
依赖乱了、多了,执行:go mod tidy
|
|
自动删无用依赖、补全缺失依赖
|
|
标准库优先,少用第三方包
|
|
Go的转义字符
|
|
\n 换行 输出后换行
|
|
\t 制表符(Tab 空格对齐文本
|
|
\\ 输出一个反斜杠 \ 打印路径
|
|
\" 输出双引号 " 字符串里带引号
|
|
\' 输出单引号 ' 字符里带单引号
|
|
\r 回车(回到行首)\b退格(删除前一个字符)
|
|
Go 变量核心知识
|
|
一、变量命名规则
|
|
只能用:字母、数字、下划线
|
|
首字符不能是数字
|
|
区分大小写(name ≠ Name)
|
|
不能用 Go 关键字(如 var、func、package)
|
|
1. 标准声明(指定类型)
|
|
格式:var 变量名 类型
|
|
var name string
|
|
var age int
|
|
var isOk bool
|
|
2. 类型推导(不写类型,Go 自动识别)
|
|
格式:var 变量名 = 值
|
|
var name = "张三" // 自动推导为string
|
|
var age = 20 // 自动推导为int
|
|
var pi = 3.14 // 自动推导为float64
|
|
3. 短变量声明
|
|
格式:变量名 := 值
|
|
func main() {
|
|
name := "李四"
|
|
age := 25
|
|
fmt.Println(name, age)
|
|
}
|
|
4. 批量声明(一次声明多个)
|
|
// 方式1:var批量
|
|
var a, b, c int
|
|
var x, y = 10, "hello"
|
|
|
|
// 方式2:批量块(更整洁)
|
|
var (
|
|
name string = "王五"
|
|
age int = 30
|
|
isStudent bool
|
|
)
|
|
零值机制
|
|
整型 (int) 0
|
|
浮点型 (float64) 0.0
|
|
字符串 (string) ""(空字符串)
|
|
布尔型 (bool) false
|
|
:= 只能在函数内用,全局变量禁止用
|
|
变量 / 包定义了必须用,不用直接编译报错
|
|
同一作用域不能重复声明同名变量
|
|
大写开头 = 公共,小写开头 = 私有(和 Java 不同)
|
|
短变量 := 至少要声明一个新变量
|