Go Mod 实例 1
1.首先打开资源管理器 选择路径例:
2. 在此情况下输入 cmd 打开命令窗口
3.输入 go mod init demo
go mod init demo;//这里是 go mod init +项目名 我的项目名是 demo
结果如下:
go.mod 内容展示
module demo
go 1.18
4.创建calc文件及go相关文件索引如下:
5.calc.go代码如下:
package calc
var aaa = 123 //私有变量 首字母小写表示私有
var Age = 20 //公有变量 首字母大写表示公有
func Add(x, y int) int { //首字母大写表示公有方法
return x + y
}
func sub(x, y int) int { //首字母小写表示私有方法
return x - y
}
6.main.go代码如下:
package main
import (
"demo/calc"
"fmt"
) //导入demo文件夹下的calc包
func main() {
sum := calc.Add(10, 20)
fmt.Println(sum) //输出结果 30
fmt.Println(calc.Age) //calc.go里的 定义Age=20
//calc包下的calc.go文件里的sub方法 和 aaa 因为首字母都是小写 所以无法在主函数调用
}
7. 执行main.go得到结果:
Go Mod 实例 2 使用第三方包 decimal包
1. 先找第三方包的地址 比如下面的 解决float精度损失的包decimal
https://github.com/shopspring/decimal
2.在terminal中当前文件下(go.mod上一级文件)输入代码下载第三方包 或者运行程序 在run 结果中 点击连接下载
go get github.com/shopspring/decimal
3.主程序
package main
import (
"fmt"
"github.com/shopspring/decimal"
)
func main() {
var num1 float64 = 3.1
var num2 float64 = 4.2
fmt.Println(num1 + num2) //输出 7.300000000000001 导致精度不对
// 1.加法
m1 := 3.1
m2 := 4.2
m3 := decimal.NewFromFloat(m1).Add(decimal.NewFromFloat(m2))
fmt.Println(m3) //输出 7.3
// 减法 乘法 除法 类似 分别为 Sub Mul Div
}
输出结果:
7.300000000000001
7.3
4.go mod vendor 作用
将依赖复制到当前文件夹(go.mod上一级文件)下的vendor文件中
Go Mod 实例 3 使用第三方包 gjson包
1.找地址
https://github.com/tidwall/gjson
2.下载依赖 源程序
package main
import (
"fmt"
"github.com/tidwall/gjson"
)
const json = `{"name":{"first":"Janet","last":"李四"},"age":47}`
func main() {
value := gjson.Get(json, "name.last")
println(value.String())
}
输出结果:
李四