golang 方法

80 阅读1分钟

方法声明(定义)

func (recevice Pe) methodName(参数列表) (返回值列表){
    方法体
    return 返回值
}
  1. 参数列表: 表示方法输入
  2. recevice: 表示这个方法和Pe这个类型绑定,或者说该方法作用于Pe类型, 可以是结构体或者自定义类型
  3. 参数列表: 表示方法输入
  4. 返回值列表: 表示返回值,可以多个
  5. 方法主体:表示为了实现某一功能的代码块
  6. return语句不是必须的

方法注意事项

  1. 结构体类型是值类型,在方法调用中,遵守值类型的传递机制,是值拷贝传递方式
  2. 如果需要修改结构体变量的值,可以通过机构体指针的方式处理
  3. golang中的方法作用在指定的数据类型上的(即和指定的数据类型绑定),因此自定义类型,都可以有方法,而不仅仅是struct,比如int, float32等都可以有方法
  4. 方法的访问范围控制的规则,和函数一样,方法名首字母小写,只能在本包访问,方法名首字母大写可以在本包和其他包中访问。

方法和函数的区别

  1. 调用方式不一样 函数调用方式: 函数名(实参列表) 方法调用方式: 变量.方法名(实参列表)
  2. 对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然
  3. 对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以