学习Golang中的软件包(附代码)

76 阅读2分钟

学习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,你会在初步接触包的概念时补充什么?