同样先看几个文件:

// 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