关于golang: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]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]

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理