返回介绍

上卷 程序设计

中卷 标准库

下卷 运行时

源码剖析

附录

10.1 导入

发布于 2024-10-12 19:15:50 字数 965 浏览 0 评论 0 收藏 0

使用包前,须用 import 导入包路径。

  • 导入完整的模块路径(module path),非包名。
  • 编译器依次搜索标准库、项目根目录,及缓存目录。
  • 引用包成员,用包名(package),而非导入路径。

默认为 module 模式,不支持 GOPATHrelative import 等老旧内容。

import "net/http"         // $GOROOT/src/net/http
import "github.com/xxx"   // $GOMODCACHE/github.com/xxx

使用别名,解决同名冲突问题。

import (
    osx  "osx/lib"     // 为包取别名,而非导入路径。
    nix  "linux/lib"
)

不同导入方式,及其成员引用。

import (
       "math"     默认: math.Sin
    m  "math"     别名: m.Sin
    .  "math"     简便: Sin
    _  "math"     初始化: 无法引用,仅用来初始化目标包。
)
  • 简便:相当于 from math import * 。 (常用于单元测试中)
  • 初始化:目的是让目标包的初始化函数得以执行,而非引用其成员。
  • 不能直接或间接导入自己,不支持任何形式的循环导入。

未使用的导入(不包括初始化方式)被编译器视为错误。

package main

import (
    "fmt"
     ~~~ imported and not used: "fmt"
)

func main() {
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文