Go语言细节提升
strings.Builder
在Go 语言中,字符串是只读的,也就意味着每次修改操作都会创建一个新的字符串。如果需要拼接多次,应使用 strings.Builder,最小化内存拷贝次数。
var str strings.Builder
func main(){
str.WriteString("hello")
fmt.Println(str.String())
}
判断map里面是否包含某个key
if val, ok := dict["foo"]; ok{
// do someting what you want to do
}
多个defer语句
当存在多个defer语句的时候,go是遵循后进先出的栈结构,从最后一个defer开始往前运行
defer 可以修改全局变量,修改不了局部变量
func main(){
defer func(){
fmt.Println("第一个defer")
}()
defer func(){
fmt.Println("第二个defer")
}()
}
空struct类型
// 创建并打印一个空struct
// 第一个大括号是定义,第二个大括号是实例化
fmt.Println(struct{}{})
空struct类型不占用内存空间,所以可以用于并发的时候的chan,实现类似锁的作用

浙公网安备 33010602011771号