golang:method

golang中方法是一个函数加上一个函数的接受者,接受者可以是值类型也可以是指针类型。关键字func和函数名之间的部分为接受者。
type Student struct {
    name string
    age    int
}

func (stu Student) Show() {
    fmt.Printf("name: %s, age = %d\n", stu.name, stu.age)
}

值类型的接受者,不可以改变接受者的值;指针类型的接受者,可以改变接受者的值。无论接受者是值类型或者是指针类型,在变量调用方法的时候,变量会被自动的转换为相对应的类型。变量的值能否在方法中改变与变量的声明方式无关,只与接受者有关。

使用指针接受者的原因:
  1. 指针接受者能够改变指针接受者所指向的值。
  2. 在每次调用方法的时候避免值复制,如果值是比较大的struct的时候使用指针接受者是非常高效的。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,545评论 1 51
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,967评论 0 38
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,509评论 3 44
  • 好好工作,好好学习! ~~HAOHAO享受最后3个月的大学时光。 第一篇简书。 简书不支持markdown吗?
    端木赤血阅读 355评论 1 1
  • 根据这些年以及近期我在广东的观察和经验,如果你是一个走着“工匠精神”的钻研者,对工作精益求精,其实你也不一定会脱颖...
    沐乘风阅读 206评论 0 0