美文网首页
golang:method

golang:method

作者: 程序员饭饭 | 来源:发表于2018-01-04 14:28 被阅读0次
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的时候使用指针接受者是非常高效的。

相关文章

  • golang:method

    golang中方法是一个函数加上一个函数的接受者,接受者可以是值类型也可以是指针类型。关键字func和函数名之间的...

  • Golang基础(七)——方法method

    Golang基础(七)——方法method @([07] golang)[Go总结] 可以对包内的任意类型定义任意...

  • Template Method in Golang

    序言 随着容器云技术的不断成熟,微服务架构也变得越来越火。在微服务架构下,我们将原本单一的应用按照功能边界分解成一...

  • Golang method详解

      从严格意义上讲,Go语言不算一门面向对象的编程语言,至少没有提供关键字class,没有明确类的概念,更没有明确...

  • Go类型官方参考 中英文对照

    官方参考 https://golang.org/ref/spec#Types 其中类型有: Method sets...

  • 方法method-GOLANG

    golang -@amazeUI -2017-09-12 16:55:44 type A struct { Nam...

  • 《日子》golang-方法method

    方法method -Go中虽没有class,但依旧有method-通过显示说明receiver来实现与某个类型的组...

  • golang method注意事项

    对于golang来说,T和*T属于两种不同的方法集,编写方法的时候,最好的办法就是保持某个类型方法集的一致性,只用...

  • GoLang NoteBook Methods And Inte

    Method Golang 中没有类的概念,只有结构体。定义函数时,如果指定了一个receiver,则这个函数会被...

  • Go interface详解

      如Go method中提及,Golang没有明确支持多态,但是通过其他手段可以实现类似C++中的多态特性,即本...

网友评论

      本文标题:golang:method

      本文链接:https://www.haomeiwen.com/subject/fgsrnxtx.html