常用内置函数:
close:用于管道通信
len/cap:len 用于返回某个类型的长度或数量(字符串、数组、切片、map 和管道);cap 是容量的意思,用于返回某个类型的最大容量(只能用于切片和 map)
new/make:new 和 make 均是用于分配内存:new 用于值类型和用户定义的类型,如自定义结构,make 用于内置引用类型(切片、map 和管道)。它们的用法就像是函数,但是将类型作为参数:new(type)、make(type)。new(T) 分配类型 T 的零值并返回其地址,也就是指向类型 T 的指针。它也可以被用于基本类型:v := new(int)。make(T) 返回类型 T 的初始化之后的值,因此它比 new 进行更多的工作。new() 是一个函数,不要忘记它的括号
copy/append:用于复制和连接切片
panic/recover:两者均用于错误处理机制
print/println:底层打印函数,在部署环境中建议使用 fmt 包
complex/real imag:用于创建和操作复数
参考:https://blog.csdn.net/weixin_44123908/article/details/107288543
其他常用函数:
1.获取当前时间
时间戳(秒):time.Now().Unix
日期:time.Now().Format(“2006-01-02 15:04:05”)
注意:参数必须是 2006-01-02 15:04:05 而不能是自定义的年月日时间,不然时间不准(一串神奇的数字)
2.字符串与int转换
i,_ := strconv.Atoi(“3”)//将字符串类型的整数转换为int类型
a := strconv.Itoa(32) //将int类型数据转换为对应的字符串表示
3.结构体json序列化
chatMsg := &ChatMsg{}
err := json.Unmarshal([]byte(msg), chatMsg) //json转结构体
buf, _ := json.Marshal(chatMsg) //结构体转json
4.删除切片元素
mySlice := make([]int, 5) //创建一个初始元素个数为5的数组切片,元素初始值为0
mySlice = append(mySlice[:i], mySlice[i+1:]…) //删除下标为i的元素
mySlice = append(mySlice[:0], mySlice[1:]…) //删除第1个元素
5.url encode/decode
encodeUrl:= url.QueryEscape(urltest)
decodeUrl,err := url.QueryUnescape(encodeUrl)
6.base64编码
encodeString := base64.StdEncoding.EncodeToString(input)
decodeBytes, err := base64.StdEncoding.DecodeString(encodeString)
7.获取字符串长度
tips := “忍者”
len := len(tips) //len=6 字节数
len := utf8.RuneCountInString(tips) //len=2 字符数
8.SubString //可用于字符串截取
1 | func SubString(str string, start int32, end int32) string { |
9.结构体类型断言
logger := &log.Logger{}
fl, ok := interface{}(logger).(*FileLogger)
1 | 1.类型断言变量一定要是一个接口变量,否则报错 invalid type assertion: xxx (non-interface type xxx on left); |
参考:https://blog.csdn.net/Sunburst_Lf/article/details/104651511/
10.将int切片转成以分号分隔的字符串
1 | func main() { |
11.将string切片转成以分号分隔的字符串
1 | func main() { |