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())
}