1. go语言的命令
- build:用于编译给定的代码包或Go语言源码文件及其依赖包。
- go build -o “xx.exe” :编译成xx.exe文件
- clean:用于清除执行其他go命令后遗留的目录和文件。
- doc:用于执行godoc命令以打印指定代码包。
- env:用于打印Go语言环境信息。
- fix:用于执行go tool fix命令以修正给定代码包的源码文件中包含的过时语法和代码调用。
- fmt:用于执行gofmt命令以格式化给定代码包中的源码文件。
- get:用于下载和安装给定代码包及其依赖包(提前安装git或hg)。
- list:用于显示给定代码包的信息。
- run:用于编译并运行给定的命令源码文件。
- install:编译包文件并编译整个程序。
- test:用于测试给定的代码包。
- tool:用于运行go语言的特殊工具。
- version:显示当前安装的go语言的版本信息。
- vet:运行go tool vet
2. golang开发 vscode快捷键
2.1. 快捷键位置
1 | File->Preferences->Keyboard Shortcuts |
2.2. 常用快捷键
1 | 1. 行注释 ctrl + / |
2.3. 修改快捷键
- 打开快捷键
File->Preferences->Keyboard Shortcuts
- 双击要修改的快捷键
- 键盘输入想要使用的快捷键
2.4. 快速生成代码片段
1 | pkgm main包+main主函数 |
3. 如何编写golang代码
3.1. 代码组织
go应用使用包和模块来组织代码,包对应到文件系统就是文件夹,模块就是**.go**的go源文件。一个包中会有多个模块,或者多个子包。
3.2. go项目管理工具
早期的go项目使用gopath来管理项目,不方便而且容易出错,从 golang 1.11 开始使用gomod管理项目,当然还有第三方模块例如govendor,我们给大家结束gomod的使用
3.3. 创建一个应用
首先,创建一个模块路径,例如:
duoke360.com/hello
,前缀一般为域名在该目录中执行
go mod init duoke360.com/hello
,该命令会创建一个go.mod文件,内容如下:1
2module duoke360.com/hello
go 1.17在hello文件夹中创建一个test.go文件内容如下:
1
2
3
4
5
6package main
import "fmt"
func main() {
fmt.Println("多课网,golang教程")
}构建并安装程序,执行如下命令,该命令会在GOPATH或者GOBIN环境变量下面创建一个hello.exe可执行文件
1
go install duoke360.com/hello/
执行,输入hello,运行结果如下
1
多课网,golang教程
创建子包,创建一个morestrings子包,就是创建一个子文件夹,在hello目录下面
创建一个子模块,morestrings.go,内容如下:
1
2
3
4
5
6
7
8
9package morestrings
func ReverseRunes(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}切换到子包目录下面,执行编译
1
go build
在test.go中导入子模块
1
fmt.Println(morestrings.ReverseRunes("!oG ,olleH"))
安装
1
go install duoke360.com/hello/
执行
1
Hello, Go!
导入网络模块,查找地址:
https://pkg.go.dev/
1
2
3
4
5
6
7
8
9
10
11
12
13package main
import (
"duoke360.com/hello/morestrings"
"fmt"
"github.com/google/go-cmp/cmp"
)
func main() {
fmt.Println(morestrings.ReverseRunes("!oG ,olleH"))
fmt.Println(cmp.Diff("Hello World", "Hello Go"))
}执行命令,
go mod tidy
,查看go.mod变量1
2
3
4
5module duoke360.com/hello
go 1.17
require github.com/google/go-cmp v0.5.6安装
1
go install duoke360.com/hello/
执行
1
2
3
4
5Hello, Go!
string(
- "Hello World",
+ "Hello Go",
)
4. golang标识符
标识符的英文是identifier
,通俗的讲,就是给变量、常量、函数、方法、结构体、数组、切片、接口起名字。
4.1. 标识符的组成
- 标识符由数字、字母和下划线(
_
)组成。 - 只能以字母和下划线(
_
)开头。 - 标识符区分大小写。
4.2. 举例说明标识符的命名
正确的命名
1 | package main |
错误的标识符
1 | package main |