学习Golang中的软件包
包声明
Go源代码文件的第一行是 "包声明",由package 关键字定义。
这有几个目的:
- 它提供了一个结构来分组相关的源文件。
- 它提供了一个代码重用的机制。
- 它区分了可执行包和实用包(即库)。
例子:
1package main
go build 将为带有 的源文件生成一个可执行的二进制文件。package main
导入一个包
import 关键字允许从其他包中引入和使用代码。
例子:
1import "fmt"
一个 "包参考变量 "是由导入的包的名字创建的--在这个例子中是fmt 。
导入多个包
通常情况下,一个源文件会导入多个包。这方面的惯例是使用一个单一的import 语句,并在括号内列出软件包清单,像这样:
1import (
2 "package1"
3 "package2"
4)
包的别名
我们可以定义一个 "别名 "来代替默认的软件包参考变量,作为一种速记名称。它的语法是在包名之前指定别名,像这样:
1import (
2 p1 "package1"
3 "package2"
4)
这允许在package1 ,像这样调用函数:
1p1.SampleFunc()
完整的例子
这是一个完整的Go语言 "Hello World "的例子,演示了上面的概念:
1package main
2
3import (
4 "fmt"
5 t "time"
6)
7
8func main() {
9 fmt.Println("Hello, World!")
10 fmt.Println("The time is now", t.Now())
11}
亮点:
- 第1行。包的声明,包的名称为
main。这将使这个程序成为一个可执行的程序。 - 第3行。
import语句正在导入一个包的列表。 - 第4行。用它的标准名称("fmt")导入 "fmt "包。
- 第5行。以别名 "t "导入 "time "包。
- 第9行。使用包
fmt中的Println函数来显示 "Hello, World!" - 第10行:使用包
fmt中的Println函数来显示 "The time is now " 后面是当前的时间,由包time中的函数Now返回(别名为t)。
这是上述程序的一个输出样本:
1$ go run main.go
2Hello, World!
3The time is now 2020-08-16 18:07:24.180778888 +0000 UTC m=+0.000097040
经验之谈
package关键字用于强制性的包声明。import关键字用于将其他包的代码带入上下文。main是一个特殊的包名,用于可执行程序。
如果你了解Go,你会在初步接触包的概念时补充什么?