3,go mod
按照当前的趋势估计 go 之后的版本都是用 go mod 来管理了,gopath 这种模式感觉会被淘汰。
- go mod help 查看帮助
- go mod init<项目模块名称>初始化模块,会在项目根目录下生成 go.mod 文件。
- go mod tidy 根据 go.mod 文件来处理依赖关系。
- go mod vendor 将依赖包复制到项目下的 vendor 目录。建议一些使用了被墙包的话可以这么处理,方便用户快速使用命令 go build -mod=vendor 编译
- go list -m all 显示依赖关系。go list -m -json all 显示详细依赖关系。
- go mod download 下载依赖。参数是非必写的,path 是包的路径,version 是包的版本。
基本上用的时候就是,首先 go init 一下,然后编译的时候会把对应 git 上的包自己编译进去,编译之前可以 go tidy 处理一些依赖关系。如果网速慢也可以用 vendor 下载下来。
在此建议使用 go mod 的时候建议配置上 goproxy,毕竟国内被墙的厉害,就是环境变量加个 GOPROXY=https://goproxy.io 就 ok。
2,字符串包(strings包)
strings.Contains(s1, "abc") // true or false
strings.ContainAny
strings.Count
strings.HasPrefix(s2, "2019")
strings.HasSuffix(s2, ".txt")
strings.Index 第一次出现位置
strings.IndexAny 任意字符第一次出现位置
strings.LastIndex
strings.Join/Split/ToLower/ToUpper // 同js的join/Split
strings.Repeat("hello", 5); //hello5次
strings.Replace(s1, "old", "new", n) //n是个数,-1表示全部替换
截取子串,str[start:end]->substr,例如 s1[0:5],取出hello
1,数据类型转换(strconv包)
strconv包提供了字符串与简单数据类型之间的类型转换功能。可以将简单类型转换为字符串,也可以将字符串转换为其它简单类型。
这个包里提供了很多函数,大概分为几类:
字符串转int:Atoi()
int转字符串: Itoa()
ParseTP类函数将string转换为TP类型:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。因为string转其它类型可能会失败,所以这些函数都有第二个返回值表示是否转换成功
FormatTP类函数将其它类型转string:FormatBool()、FormatFloat()、FormatInt()、FormatUint()
AppendTP类函数用于将TP转换成字符串后append到一个slice中:AppendBool()、AppendFloat()、AppendInt()、AppendUint()