1.未知版本号添加进go mod
如:github.com/lxn/walk 无版本号,这样解决
go.mod文件里 使用github上显示的最后一次提交的commit的短编号
require (
github.com/lxn/walk 5370a7c
)
再使用 go mod tidy 即会自动添加正确的版本号
2.不带cmd窗口打包
go build -ldflags="-H windowsgui" auto.go(要打包的main文件)
3.格式化 将数字转为字符串
fmt.Sprintf("%d,%d", x, y)
4.引用传递
// 引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到原内容数据。
// Go语言中可以借助传指针来实现引用传递的效果。函数参数使用指针参数,传参的时候其实是复制一份指针参数,也就是复制了一份变量地址。
// 取地址符& &data使用指针(内存地址)
// * 号用于指定变量是一个指针
func main() {
isBreak := false
test(&isBreak)
if isBreak {
fmt.println("break")
}
}
func test(isBreak *bool) {
*isBreak = true
}
5.初始化项目
go mod init PackageName
6.获得百分比
percent := int(float32(2) / float32(3) * 100)
7.时间戳
fmt.Sprintf("%v", time.Now().UnixNano())
8.获取本地ip
var localIp string
func GetIpAddress() {
conn, err := net.Dial("udp", "8.8.8.8:53")
if err != nil {
fmt.Println(err)
localIp = ""
}
localAddr := conn.LocalAddr().(*net.UDPAddr)
ip := strings.Split(localAddr.String(), ":")[0]
localIp = ip
}
9.打包不显示窗口并压缩
go build -ldflags="-H windowsgui -w -s"
10.获取cookie,http发送请求时使用cookie
client := http.Client{
Timeout: time.Duration(time.Second * 5),
}
// 后续请求client会自动将cookie加入
jar, _ := cookiejar.New(nil)
client.Jar = jar
resp, err := client.Get(jsonUrl)
for _, cookie := range resp.Cookies() {
if cookie.Name == "app" {
token = cookie.Value
}
}
11.golang解析json数据
```javascript
var c map[string]interface{}
client := &http.Client{
Timeout: time.Duration(time.Second * 5),
}
resp, err = client.Get(jsonUrl)
json.Unmarshal(body, &c)
fmt.Println(c)