$GOPATH目录下的src源码目录一般是按照包来组织的,每一个包就是一个文件夹。
目录名字是包内源文件的物理位置,目录名也是我们代码中import语句里的内容。
源文件的开始有一个package关键字,用于指明该源文件的包名,一般情况下,我们需要让package的名字与目录名一致,但是并不是必须这样做,如果不这样做,那么import的时候需要用目录名,在源文件中使用import的模块时,需要用package的名字,这点需要注意。不过这只是为了搞清楚这一点区别,具体实践中,还是要让二者一致。
另外,源文件的文件名没有任何关系,可以随便搞。
--proj1
--util
--print.go
--main
--main.go
print.go
package putil
import "fmt"
func MyPrint(s string){
fmt.Println("string is: "+s)
}
可以看到其package名字与目录名字并不同
main.go
package main
import (
"util"
"os"
)
func main(){
putil.MyPrint(os.Args[1])
}
这里使用MyPrint函数时,用的是package名字。在main,go文件夹执行go install,
进入bin目录下,执行main glgl,即可。