美文网首页
Golang基础(七)——方法method

Golang基础(七)——方法method

作者: Eric木子 | 来源:发表于2017-12-10 22:08 被阅读0次

    Golang基础(七)——方法method

    @([07] golang)[Go总结]

    可以对包内的任意类型定义任意方法,但不能对来自其他包的类型或基础类型定义方法(可以通过自定义底层类型为基础类型的新类型,再对自定义的类型定义方法)。

    方法只是一个含有特定接收者参数的函数。

    一个方法的接收者必须是一个该类型的值或者该类型值的指针。

    任何一个给定的类型的每个方法名必须唯一,不能同时定义两个相同名字的方法,并且golang中方法不支持重载方法。

    声明一个结构的方法

    // func(变量名 变量类型) 方法名(方法参数){
    // 方法实现
    // }
    func (b B) Print() {
        fmt.Println("B")
    }
    

    type定义的任意类型都可以声明方法

    package main
    
    import "fmt"
    // 定义一个底层类型为int的TZ类型
    type TZ int
    
    func main() {
        var a TZ
        a.Print()
    }
    func (a *TZ) Print() {
        fmt.Println("TZ")
    }
    
    接收者为指针的方法

    使用类型的指针作为方法的接收者的好处:

    1. 可以避免在每个方法调用中进行值拷贝(在大的类型结构体中效率更高);
    2. 可以在方法中修改接收者指向的值

    相关文章

      网友评论

          本文标题:Golang基础(七)——方法method

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