Loading

Golang 方法的声明

func (recevier type) methodName (参数列表)(返回值列表){
    方法体
    return 返回值//不是必须的
}

//recevier type 表示方法 methodName 和 type 这个类型进行绑定

注意:

  1. 如果修改结构体变量的值,可以通过结构体指针的方式来处理
  2. 自定义的类型都可以绑定方法,而不仅仅是struct,int、float64等都可以绑定方法
  3. 方法的访问范围的规则和函数一样的,方法名小写只能在本包内使用,方法名大写可以在本包和其它包访问

方法和函数的区别:

  • 调用方式不一样
    函数调用方式:函数名(实参列表)
    方法调用方式:变量.方法名(实参列表)
  • 函数的参数类型必须是一致的,但是方法的入参是不固定的,比如
    //地址拷贝
    func (t *Student)speak(){
        
    }
    
    t := Student{"carver"}
    (&t).speak()//等价于 t.speak()  ,t.speak() 形式上是值传递,其实本质是地址拷贝
    
    //值拷贝
    func (t Student)eat(){
        
    }
    t := Student{"carver"}
    t.eat()//等价于 (&t).eat()  ,(&t).eat() 形式上是地址传递,其实本质是值拷贝

     

posted @ 2024-10-07 13:35  Carver大脸猫  阅读(4)  评论(0)    收藏  举报