Go 语言怎么 import 包?

文章导读
Previous Quiz Next 在 Go 中,import 语句 用于在程序中包含外部 packages(库或模块)。import 语句放置在 Go 程序文件顶部,就在 package 声明之后。这些 packages 提供了程序中可以使用的额外功能。
📋 目录
  1. import 的作用是什么,为什么要使用它?
  2. 导入多个 Packages
  3. 别名导入
  4. 语法
  5. 点导入
  6. 空白导入
A A

Go - 导入



Previous
Quiz
Next

在 Go 中,import 语句 用于在程序中包含外部 packages(库或模块)。import 语句放置在 Go 程序文件顶部,就在 package 声明之后。这些 packages 提供了程序中可以使用的额外功能。

import 的作用是什么,为什么要使用它?

"import" 告诉 Go 编译器“我想在程序中使用这个 package”。一旦导入,就可以使​​用该特定 package 提供的 functions、variables 或 types。

不必反复编写相同的代码,可以使用 预构建的 packages,因为它们为常见任务(如打印、数学运算、文件处理等)提供了现成解决方案。

语法

以下是 Golang 中 Import 的语法 −

import "package_name"

基本示例

在这个示例中,导入了 fmt package,它提供了格式化 I/O 的 functions,并使用其 Println function 将 "Hello, World!" 打印到控制台。

package main
import "fmt"
func main() {
   fmt.Println("Hello, World!")
}

以上程序的输出如下 −

Hello, World!

导入多个 Packages

可以通过在 import 关键字后用括号将它们分组,来在程序中包含并使用 多个外部 packages

语法

以下是 Golang 中导入多个 Packages 的语法 −

import (
   "fmt"
   "math"
)

多个 Packages 示例

在这个示例中,我们导入了 fmtmath packages,然后使用 math.Sqrt 计算并打印 225 的平方根。

package main
import (
   "fmt"
   "math"
)
func main() {
   fmt.Println("Square root of 225 is", math.Sqrt(225))
}

以上程序的输出如下 −

Square root of 225 is 15

别名导入

如果想在程序中使用不同的名称,可以为导入的 package 使用 alias

语法

以下是 Golang 中 Import 的语法 −

import (
   "fmt"
   m "math"
)

别名导入示例

在这个示例中,我们使用别名 m 导入 math package,并使用 m.Sqrt 计算 36 的平方根。

package main
import (
   "fmt"
   m "math"
)
func main() {
   fmt.Println("Square root of 36 is", m.Sqrt(36))
}

以上程序的输出如下 −

Square root of 36 is 6

点导入

点导入允许 在不使用 package 名称限定的情况下直接使用 package 的 exported identifiers。

注意:不鼓励使用点导入,因为它们会使代码更难阅读和理解。

语法

以下是 Golang 中点导入的语法 −

import . "fmt"

点导入示例

在这个示例中,我们使用点导入 fmt package,从而可以直接使用 Println,而无需 fmt 前缀

package main
import . "fmt"
func main() {
    Println("Hello, World!") 
}

以上程序的输出如下 −

Hello, World!

空白导入

有时,你可能为了 package 的 side effects(如初始化 functions)而导入它。在这种情况下,可以使用 空白标识符 _ 来导入 package 而无需使用它:

语法

以下是 Golang 中空白导入的语法 −

import _ "image/png"

这通常用于 package 向 Go runtime 注册自身的情况,例如 image format handlers。

空白导入示例

在这个示例中,我们为了其 side effects(如注册 PNG 格式)而导入 image/png package,无需使用它,然后打印一条消息。

package main
import (
   "fmt"
   _ "image/png"
)
func main() {
   fmt.Println("PNG format registered")
}

以上程序的输出如下 −

PNG format registered