同样先看几个文件:
// main.go
package main
import (
"./subpack" //这里是目录相对路径,不是包名
"fmt"
)
func main(){
fmt.Println(subpack.sub()) //这里的requests才是./requests目录中的package名称
function() //因为是在同一个目录下,所以可以直接使用这个文件中的方法和变量等...
//但是编译或运行的时候要这样:go build,而不用指出文件名go build main.go
fmt.Println(subpack.VERSION)
}
// function.go
package main
import "fmt"
func function(){
fmt.Println("this main package, function func")
}
// subpack/subpack.go
package subpack
import (
"fmt"
)
var VERSION string = "0.6"
func Sub() string { //注意这里的首字母大写
fmt.Println("subpack_name sub func")
return "subpack_name sub func"
}
function.gofunctionfunction.gomain.gomain.gofunction.gofunctionmain.gofunction
importpackagesubpack文件夹main.gosubpack文件夹subpack.go文件import ./subpacksubpack.gopackagesubpackSubmain.gosubpack.Sub()
package
import