每日一学
-
golang里sync.Map包的使用方法
sync.Map简介在Go语言里内置的常规map是只支持并发读,但不支持并发写操作的,常见的错误信息:fatal error: concurrent map writes. 但在golang里已经提供了封装好的线程安全map的包sync.Map,可以看看sync.Map的定义:// Map is like a Go map[interface{}]interface{} but is safe for co...
-
golang里strcut存为toml文件的方法
背景之前有介绍过在golang里如何读取toml文件文件,最近有个同学问我如何将struct存为toml文件,不过之前确实没这么操作过,所以就看了下toml的库的代码才找到方法。我采用的toml解析库为:github.com/BurntSushi/toml,在encode.go文件里的关键说明如下:// NewEncoder returns a TOML encoder that encodes Go values ...
-
golang里实现获取当前git仓库、分支的方法
需要写一个获取当前git仓库的地址和分支的方法,这里想到的最快的方法就是通过命令行的形式,关键代码如下:package git import ( "fmt" "os/exec" "strings" ) // ExecShell ... func ExecShell(command string, arg ...string) (out&nb...
-
golang里如何判断一个目录是否存在?
写文件之前最好判断下目录是否存在,如果不存在则需要先创建目录,今天我们来学习golang里如何判断一个目录是否存在?使用系统自带的os包,下面直接上代码:package main import ( "fmt" "os" ) // PathExists ... func PathExists(path s...
-
Golang里实现Http服务器并解析header参数和表单参数
在http服务里,header参数和表单参数是经常使用到的,本文主要是练习在Go语言里,如何解析Http请求的header里的参数和表单参数,具体代码如下:package server import ( "net/http" "strconv" "fmt" ) func HttpStart(port&...