1. 首页
  2. 数据库
  3. 其它
  4. Go语言的方法接受者类型用值类型还是指针类型?

Go语言的方法接受者类型用值类型还是指针类型?

上传者: 2020-12-31 19:18:32上传 PDF文件 50.42KB 热度 18次
概述 很多人(特别是新手)在写 Go 语言代码时经常会问一个问题,那就是一个方法的接受者类型到底应该是值类型还是指针类型呢,Go 的 wiki 上对这点做了很好的解释,我来翻译一下。 何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型)。 2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存给 slice,使用值类型。 3.如果接受者是一个小的数组或者原生的值类型结构体类型(比如 time.Time 类型),而且没有可修改的字段和指针,又或者接受者是一个简单地基本类型像是 int 和 string,使
用户评论