对Golang import 导入包语法详解

package 的导入语法

写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下:

import(
  "fmt"
)

然后在代码里面可以通过如下的方式调用:

fmt.Println( "我爱北京天安门" )

fmt 是 Go 的标准库,它其实是去 GOROOT 下去加载该模块,当然 Go 的 import 还支持如下两种方式来加载自己写的模块:

相对路径

import  "./model" // 当前文件同一目录的 model 目录,但是不建议这种方式 import

绝对路径

import  "shorturl/model" // 加载 GOPATH/src/shorturl/model 模块

package 的导入的特殊用法

上面展示了一些 import 常用的几种方式,但是还有一些特殊的 import ,让很多新手很费解,下面是三种导入包的使用方法。

点操作

有时候会看到如下的方式导入包:

import( 
  . "fmt" 
)

这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的:

fmt.Println( "我爱北京天安门" )

可以省略的写成:

Println( "我爱北京天安门" )

别名操作

别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字:

import( 
  f "fmt" 
)

别名操作调用包函数时前缀变成了重命名的前缀,即:

f.Println( "我爱北京天安门" )

下划线操作

这个操作经常是让很多人费解的一个操作符,请看下面这个 import

import ( 
  “database/sql” 
  _ “github.com/ziutek/mymysql/godrv” 
)

下滑线 “_” 操作其实只是引入该包。当导入一个包时,它所有的 init() 函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的 init() 函数被执行而已。这个时候就可以使用 “_” 操作引用该包了。即使用 “_” 操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其 init() 函数。

相关推荐