美文网首页
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

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