12、Go语言类型特性深度解析

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 {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值