方法声明(定义)
func (recevice Pe) methodName(参数列表) (返回值列表){
方法体
return 返回值
}
- 参数列表: 表示方法输入
- recevice: 表示这个方法和Pe这个类型绑定,或者说该方法作用于Pe类型, 可以是结构体或者自定义类型
- 参数列表: 表示方法输入
- 返回值列表: 表示返回值,可以多个
- 方法主体:表示为了实现某一功能的代码块
- return语句不是必须的
方法注意事项
- 结构体类型是值类型,在方法调用中,遵守值类型的传递机制,是值拷贝传递方式
- 如果需要修改结构体变量的值,可以通过机构体指针的方式处理
- golang中的方法作用在指定的数据类型上的(即和指定的数据类型绑定),因此自定义类型,都可以有方法,而不仅仅是struct,比如int, float32等都可以有方法
- 方法的访问范围控制的规则,和函数一样,方法名首字母小写,只能在本包访问,方法名首字母大写可以在本包和其他包中访问。
方法和函数的区别
- 调用方式不一样
函数调用方式: 函数名(实参列表)
方法调用方式: 变量.方法名(实参列表)
- 对于普通函数,接收者为值类型时,不能将指针类型的数据直接传递,反之亦然
- 对于方法(如struct的方法),接收者为值类型时,可以直接用指针类型的变量调用方法,反过来同样也可以