包的引用格式

包的绝对路径就是GORO0T/src/GOPATH后面包的存放路径,如下所示

1
2
3
import "lab/test"
import "database/sql/driver'
import "database/sql

上面代码的含义如下:

test包是自定义的包,其源码位于GOPATH/lab/test目录下;

driver包的源码位于GOR00T/src/database/sql/driver目录下;

sql包的源码位于GOR00T/src/database/sql目录下。

标准库引用

直接引用标准库中的包,不需要指定路径。例如:

1
import "fmt"

此时可以用fmt.作为前缀来使用fmt包中的方法,这是常用的一种方式。

完整路径引用

使用完整路径引用包,包括其在$GOPATH中的位置或者在Go module中的模块路径。例如:

1
import "github.com/example/package"

相对路径引用

在同一项目中引用其他包,使用相对路径。这种方式通常在同一个项目中的不同目录之间引用包时使用。例如:

1
import "./subpackage"

别名引用

引用包时,可以给包指定别名,这种方式适用于避免包名冲突或者简化包名。例如:

1
import fm "fmt"

匿名引用

使用匿名引用来导入包,但不直接使用其导出的标识符。匿名引用的目的通常是为了执行包的初始化操作或者注册。匿名引用使用下划线 (_) 来标识。例如:

1
import _ "github.com/example/pkg"

这里的下划线表示,虽然引入了该包,但是不会在代码中直接使用它的标识符。通常这种用法是为了让包中的init函数执行,或者执行包的一些副作用,例如注册数据库驱动程序。

省略引用

在引入包时不使用包的名称,而是直接使用包中的函数、变量或其他导出的标识符。这种省略引用的格式使用了匿名导入。例如:

1
import . "fmt"

这样,在引入了fmt包之后,就可以直接使用fmt包中的函数或变量,而不需要在调用时使用包名前缀。例如:

1
2
3
4
5
import . "fmt"

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

在上面的示例中,我们直接调用了fmt包中的Println函数,而不需要使用fmt.Println。这种方式虽然简洁,但也会导致代码的可读性降低,因此在使用时需要慎重考虑。

0%