ZetCode

Golang import 关键字

最后修改于 2025 年 5 月 7 日

本教程将讲解如何在 Go 中使用 import 关键字。我们将通过导入包的实际示例来涵盖包管理基础知识。

import 语句使其他包的已导出标识符在当前文件中可用。这对于代码组织和重用至关重要。

在 Go 中,import 可以引用标准库包、第三方模块和本地包。正确的导入对于构建模块化和可维护的应用程序至关重要。

基本 import 语句

最简单的形式导入单个包。此示例演示了导入 fmt 包以进行格式化 I/O 操作。

basic_import.go
package main

import "fmt"

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

import "fmt" 语句可以访问 fmt 包中的所有已导出函数。然后我们使用 fmt.Println 将文本输出到控制台。

使用单独语句的多个 import

可以使用单独的 import 语句导入多个包。这种方法对于许多导入来说清晰但冗长。

multiple_imports.go
package main

import "fmt"
import "math"
import "time"

func main() {
    fmt.Println("Current time:", time.Now())
    fmt.Println("Square root of 16:", math.Sqrt(16))
}

每个 import 语句引入一个不同的包。代码使用所有三个导入包中的函数来演示其可用性。

分组 import 语句

Go 支持分组导入以提高可读性。导入多个包时,这是首选样式。

grouped_imports.go
package main

import (
    "fmt"
    "math"
    "time"
)

func main() {
    fmt.Println("Pi:", math.Pi)
    fmt.Println("Weekday:", time.Now().Weekday())
}

分组语法使用括号将所有导入路径括起来。这种格式比单独的 import 语句更简洁,也更容易维护。

带别名的 Import

包可以导入自定义别名,以避免命名冲突或提供更短的引用。

alias_import.go
package main

import (
    "fmt"
    m "math"
)

func main() {
    fmt.Println("Cosine of 0:", m.Cos(0))
    fmt.Println("Square root of 9:", m.Sqrt(9))
}

m "math" 语法为 math 包创建了一个别名。然后我们使用 m 而不是 math 来访问其函数,演示了别名用法。

点导入

点导入允许在没有限定符的情况下访问包成员。这通常不被推荐,除非在测试等特定情况下。

dot_import.go
package main

import (
    "fmt"
    . "math"
)

func main() {
    fmt.Println("Pi:", Pi)
    fmt.Println("Square root of 25:", Sqrt(25))
}

. "math" 导入使所有 math 包标识符可直接访问。请注意,这可能导致命名冲突,应谨慎使用。

空导入

空导入会执行包初始化,而不公开其导出内容。这用于数据库驱动程序等副作用。

blank_import.go
package main

import (
    "fmt"
    _ "image/png"
)

func main() {
    fmt.Println("PNG decoder registered")
}

_ "image/png" 导入注册 PNG 解码器,而不公开其函数。main 函数演示了程序在导入的副作用发生时仍在运行。

导入本地包

本地包使用模块路径导入。此示例显示了从同一模块导入包。

local_import.go
package main

import (
    "fmt"
    "example.com/mymodule/mypackage"
)

func main() {
    fmt.Println("Using local package:")
    mypackage.MyFunction()
}

导入路径 "example.com/mymodule/mypackage" 引用了一个本地包。代码假定 go.mod 文件已正确设置模块。

来源

Go 语言规范

本教程通过各种场景下的包管理实际示例,涵盖了 Go 中的 import 关键字。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Golang 教程