补充 import 语法.
Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
parent
af9a1929bf
commit
58e61b84cf
|
@ -12,7 +12,7 @@ package pkg
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 2.使用包
|
## 2.导入和使用包
|
||||||
|
|
||||||
```go
|
```go
|
||||||
/**
|
/**
|
||||||
|
@ -33,3 +33,66 @@ func main() {
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 2.1.相对路径导入
|
||||||
|
|
||||||
|
导入当前文件同一目录的 model 包:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import "./model"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2.绝对路径
|
||||||
|
|
||||||
|
加载 $GOPATH/src/shorturl/model 模块:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import "shorturl/model"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.3.“\.”操作
|
||||||
|
|
||||||
|
有时候会看到如下的方式导入包:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import ( . “fmt” )
|
||||||
|
```
|
||||||
|
|
||||||
|
这个“\.”操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的:
|
||||||
|
|
||||||
|
```go
|
||||||
|
fmt.Println(“hello world”)
|
||||||
|
```
|
||||||
|
|
||||||
|
可以省略的写成:
|
||||||
|
|
||||||
|
```go
|
||||||
|
Println(“hello world”)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.4.别名
|
||||||
|
|
||||||
|
别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import ( f “fmt” )
|
||||||
|
```
|
||||||
|
|
||||||
|
别名操作调用包函数时前缀变成了重命名的前缀,即:
|
||||||
|
|
||||||
|
```go
|
||||||
|
f.Println(“hello world”)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.5.“\_”操作
|
||||||
|
|
||||||
|
这个操作经常是让很多人费解的一个操作符,请看下面这个 import:
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
“database/sql”
|
||||||
|
_ “github.com/ziutek/mymysql/godrv”
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
“\_”操作其实只是引入该包。当导入一个包时,它所有的 init() 函数就会被执行,但有些时候并非真的需要使用这些包,仅仅是希望它的 init() 函数被执行而已。这个时候就可以使用“\_”操作引用该包了。即使用“\_”操作引用包是无法通过包名来调用包中的导出函数,而是只是为了简单的调用其 init() 函数。
|
||||||
|
|
Loading…
Reference in New Issue