// 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]string language = 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]