golang 基本知识点

// 5.Runtime.mp4 小对象结构体合并 bytes Buffer sice、map预创建 长调用栈 避免频繁创建临时对象 字符串拼接 strings.Builder 不必要的memory copy 分析内存逃逸// 这种声明方式 p 是一个 nil 值 var p *Point// 改为 var p *Point = new(Point)// 或者 var p *Point = &Point{} 为什么这么改就可以呢,我们看看定义,大致意思是,new函数会分配内存,返回的值是一个指向该类型零值的地址。

//第一种声明 var language map[string]stringlanguage = make(map[string]string, 10) //在使用map前,需要先make,make的作用就是给map分配数据空间 language["1"] = "C#" language["2"] = "go" language["3"] = "python" fmt.Println(language) //map[1:C# 2:go 3:python]//第二种声明 相比上面的第一种,少了 var声明 language2 := make(map[string]string) language2["1"] = "C#" language2["2"] = "go" language2["3"] = "python" fmt.Println(language2) //map[1:C# 2:go 3:python]//第三种声明 直接初始化 language3 := map[string]string{ "1": "C#", "2": "go", "3": "python", } fmt.Println(language3) //map[1:C# 2:go 3:python]

    推荐阅读