4.2 Go 程序的基本结构和要素
...大约 2 分钟
4.2 Go 程序的基本结构和要素
4.2.1 包的概念、导入与可见性
包 Package
包是结构化代码的一种方式: 每个程序由包(package)组成,可使用自身的包或者导入其他包的内容。
必须在源文件的非注释第一行指明文件属于哪个包,如:package main
。
标准库
Golang 中可直接使用的包。
编译
若对一个包进行修改或重新编译,所有引用了的此包的程序必须重新编译。
Golang 中的包采用显示依赖达到快速编译的目的,编译器从后缀名为.o
的对象文件中提取传递依赖类型的信息。
例: a.go
依赖 b.go
, b.go
依赖 c.go
- 编译顺序为: c, b, a
导入 Import
使用 import
导入包:
import "fmt" import "os"
import ( "fmt" "os" )
// 使用别名(alias) import format "fmt"
导入的包若没有使用将会出现错误: imported and not used: xxx
可见性
标识符的可见性:
- 导出(可见的):大写字母开头,可被外部包调用
- 不可见的:小写字母开头,不可被外部包调用
4.2.2 注释
注释不会被编译,种类有:
单行注释:
// comment
多行注释:
/* * comment 1 * comment 2 */
包注释
包的文档说明,用于 package
之前
// Package superman implements methods for saving the world.
//
// Experience has shown that a small number of procedures can prove
// helpful when attempting to save the world.
package superman
文档注释
几乎所有全局作用域的类型、常量、函数和导出的对象的注释,以名称开头。
// EnterOrbit causes Superman to fly into low Earth orbit, a position
// that presents several possibilities for planet salvation.
func EnterOrbit() error {
...
}
4.2.3 类型转换
所有类型转换必须是显式的:
valueOfTypeB = typeB(valueOfTypeA)
a := 5.0
b := int(a)
自定义类型
type your_type type
type Integer int
相同底层类型的变量可以相互转换:
var a Integer = 3
c := int(a)
d := Integer(c)
Powered by Waline v2.15.2