Go语言实战-Notes

本书的示例代码

2 快速开始一个 Go 程序

示例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import (
"log"
"os"

_ "github.com/goinaction/code/chapter2/sample/matchers"
"github.com/goinaction/code/chapter2/sample/search"
)

// init 在 main 之前调用
func init() {
// 将日志输出到标准输出
log.SetOutput(os.Stdout)
}

// main 是整个程序的入口
func main() {
// 使用特定的项做搜索
search.Run("president")
}

按照惯例, 包和文件夹同名, 所有处于同一个文件夹里的代码文件.

在导入路径前放下划线, 可以让编译器接受导入某个包而不使用.

程序中每个代码文件中的 init 函数都会在 main 函数执行前调用.

与第三方包不同, 从标准库导入代码时, 只需要给出要导入的包名, 编译器查找包的时候, 总是会到 GOROOTGOPATH 环境变量引用的位置去查找.

3 打包和工具链

GO 标准库默认安装在 /usr/lib/go/src 目录下.

注意, 每个包都在一个单独的目录里, 不能把多个包放在同一个目录中, 也不能把同一个包的文件分拆到不同目录中, 即同一个目录下的所有 .go 文件必须声明同一个包名.

包名惯例

用包所在目录的名字.

给包及其目录命名时, 应该简洁, 清晰且全小写.

main 包

在 Go 语言里,命名为 main 的包具有特殊的含义。 Go 语言的编译程序会试图把这种名字的包编译为二进制可执行文件。所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包。当编译器发现某个包的名字为 main 时,它一定也会发现名为 main()的函数,否则不会创建可执行文件。main()函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行. 程序编译时,会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名。

go 命令

go run 可以编译并运行.

go vet 可以检测代码常见错误.

go fmt 用于格式化代码.


Go语言实战-Notes
http://example.com/2023/09/30/Go语言实战-Notes/
作者
Jie
发布于
2023年9月30日
许可协议