Go语言类型特性深度解析
1. 方法作为函数
在Go语言里,与类型相关联的函数被称作方法。方法的声明和普通函数类似,但多了一个特殊的接收者参数,其模式如下:
func (<receiver>) <name>({<arg>{,<arg>}...}) {(<return>{,<return>}...)} {
// 函数体
}
这里的 <receiver> 形式为 <name> <type> ,且只能有一个接收者。需要注意,这和下面这种形式不同:
func <name>(<receiver>, {<arg>{,<arg>}...}) {(<return>{,<return>}...)} {
// 函数体
}
虽然这种形式合法,但它不被视为接收者类型的方法,更像是Java里的静态方法。
接收者类型就是函数作为其方法的关联类型。若该类型是结构体类型,此方法能访问该类型的所有字段,包括私有字段。不过要注意,这些方法并非在包含类型内部声明,而是独立的(甚至可能位于同一包的不同源文件中,这和Java有很大区别)。例如:
type SomeStruct struct {
超级会员免费看
订阅专栏 解锁全文
82

被折叠的 条评论
为什么被折叠?



