go语言 包依赖管理-构建完整的依赖项目:目录结构及包的调用
目录结构:
<home>/ |-- greetings/ |-- hello/
1.分别进入对应目录创建以上目录结构
//bash切换到用户主目录
cd $HOMEPAHT$
//bash新建greetings目录并进入该目录
mkdir greetings cd greetings //bash创建模组example.com/greetings
$ go mod init example.com/greetings go: creating new go.mod: module example.com/greetings
当前目录下新增greetings.go代码程序
package greetings import "fmt" // Hello returns a greeting for the named person. func Hello(name string) string { // Return a greeting that embeds the name in a message. message := fmt.Sprintf("Hi, %v. Welcome!", name) return message }
//bash切换到用户主目录
cd $HOMEPAHT$
//bash新建hello目录并进入该目录
mkdir hello cd hello //bash创建模组example.com/hello
$ go mod init example.com/hello
go: creating new go.mod: module example.com/hello
2.当前目录下新增hello.go代码程序
package main import ( "fmt" "example.com/greetings" ) func main() { // Get a greeting message and print it. message := greetings.Hello("Gladys") fmt.Println(message) }
3.bash引用包重定向
$ go mod edit -replace example.com/greetings=../greetings
4.bash检查当前模块的依赖关系,并移除不需要的依赖项。
$ go mod tidy
5.bash当前目录下执行go命令,系统自动会从当前目录内搜索main.go入口程序
$ go run .
Hi, Gladys. Welcome!
注:GitHub上面包的调用与此类似,不用第3部的重定向。将url地址前段的https://去掉即可(线上包的调用可能存在不可用的情况,要进行测试是否仍然可调用)
go语言的编码原则有很多要注意的地方,比如同一目录下共用一个包名,函数或方法可以互相调用。但是只有以大写字母开头的函数或方法,才能被外部包调用。一个项目有且仅有一个main.go
入口和package main包,通过入口调用同级或下级目录包及函数......编码规则后续根据学习情况,再做总结
参考来源:https://go.dev/doc
本文来自博客园,作者: 三生有幸格格,转载请注明原文链接:https://www.cnblogs.com/mylive/p/17705213.html