go 的包引用
2022年1月13日1 内部引用
1.1目录接口如下
1 2 3 4 5 6 7 8 |
zfgo |-----src | |-----ch15 | |-----client | | |-----package_test.go | |-----series | |-----my_series.go |-----go.mod |
1.2使用命令 go mod init <项目名称>
1 |
go mod init zfgo |
1.3. package_test.go 文件内容
1 2 3 4 5 6 7 8 9 10 11 |
package client import ( "testing" "zfgo/src/ch15/series" //内部引入 ) func TestPackage(t *testing.T) { t.Log(series.GetFibonacciSerie(5)) t.Log(series.Square(5)) } |
1.4.my_series.go 文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package series import "fmt" func init() { fmt.Println("init1") } func init() { fmt.Println("init2") } func Square(n int) int { return n * n } func GetFibonacciSerie(n int) []int { ret := []int{1, 1} for i := 2; i < n; i++ { ret = append(ret, ret[i-2]+ret[i-1]) } return ret } |
2外部引入
2.1由于之前使用了go mod init zfgo
所以不需要在使用
2.2添加一个外包包
1 |
go get github.com/easierway/concurrent_map |
2.3可以看见go.mod 多出了一行代码
2.4 引用
1 2 3 4 5 6 7 8 9 10 11 12 |
package remote import ( "testing" cm "github.com/easierway/concurrent_map" //引用还取了个别名 ) func TestConcurrentMap(t *testing.T) { m := cm.CreateConcurrentMap(99) m.Set(cm.StrKey("key"), 10) t.Log(m.Get(cm.StrKey("key"))) } |
2.5 使用命令
1 |
go mod tidy //<span class="Y2IQFc" lang="zh-CN">添加缺失和删除未使用的模块</span> |
可以看见之前的注释消失证明我们已经使用成功了