go import
注意:当写自己包的时候,要使用短小的不含有 _ (下划线) 的小写单词来为文件命名 。
假设我的工作目录是 $GOPATH/src/aland
,下面有一个一个文件 main.go
和 hello
目录,hello
目录下有两个文件 hello.go
和 bye.go
。
- // hello.go
- package hello
-
- func Hello() string {
- return "Hello"
- }
- // bye.go
- package hello
-
- func Bye() string {
- return "Bye"
- }
import 的一般形式是:import "包的路径或 URL 地址"
相对路径
- // main.go
- package main
-
- import (
- "fmt"
- "./hello"
- )
-
- func main() {
- fmt.Println(hello.Hello())
- fmt.Println(hello.Bye())
- }
还有一种方法是使用 .
来作为包的别名,形式如下:
- // main.go
- package main
-
- import (
- "fmt"
- . "./hello"
- )
-
- func main() {
- fmt.Println(Hello()) // 注意这里,不使用包名了
- fmt.Println(Bye()) // 注意这里,不使用包名了
- }
$GOPATH 路径
下面的写法中,import
会导入 $GOPAHT/src/aland/hello
下的所有的 .go
文件
- // main.go
- package main
-
- import (
- "fmt"
- "aland/hello"
- )
-
- func main() {
- fmt.Println(hello.Hello())
- fmt.Println(hello.Bye())
- }
外部包
假设现在我还有一个叫 fruits
的目录是从 github.com
下载下来的,位置是 $GOPATH/src/github.com/alandtsang/fruits
。
fruits
目录下有一个用来打印水果名字的 Print()
函数。
目录结构如下:
- [root@ src]# tree
- ├── aland
- │ ├── hello
- │ │ ├── bye.go
- │ │ └── hello.go
- │ └── main.go
- ├── github.com
- ├── alandtsang
- └── fruits
- └── fruits.go
导入外部包代码
- // main.go
- package main
-
- import (
- "aland/hello"
- "fmt"
-
- "github.com/alandtsang/fruits"
- )
-
- func main() {
- fmt.Println(hello.Hello())
- fmt.Println(hello.Bye())
- fmt.Println(fruits.Print())
- }