import

  • 不得导入源代码中没有用到的package
  • 语法格式有两种:
import "package1"
import "package2"
import (
   "package1"
   "package2"
)
  • 如果一个main包导入其他包,包将被顺序导入
  • 如果导入的包中依赖其他包(包B),会先导入B包,然后初始化B包中常量和变量,最后如果B包中有init,会自动执行init()
  • 所有包导入完成后才会对main中常量和变量初始化,然后执行main中的init函数(如果存在),最后执行main函数
  • 多次引入同一个包(A导入B包和C包,B包中导入C包),只会执行一次导入(C包init只执行一次)

import 别名

  • 将导入的包命名为另一个别名
import (
    abc "fmt"
)
func main() {
    abc.Println("a")
}
  • 点 (.):点标识的包导入后,调用包中函数可以省略前缀包名
import (
    . "fmt"
)
func main() {
    Println("a")
}
  • 下划线(_):导入该包,但不导入整个包,而是执行包中init函数,无法通过包名来调用包中其他函数。