猿问

方法的指针接收器的 Go 语法

在 go 中,也可以为指针接收器定义一个方法。Go 可以解释代码语法如下:


在方法的定义中,只写接收者的指针类型就足够了,在函数定义中你不需要解引用指针来访问你想要访问的内存中的对象。


在函数调用中,您不需要在指针类型上调用函数,我的意思是在引用上。Go可以理解你的意思。


type Box struct {

    color string

}


var b Box

基于此,golang 代码片段在下面等效的原因是什么?除了方便或代码速记之外,还有其他原因吗?


Go way,但经典的C方式也有效:


func (b *Box) setColor(c string) {

    b.color = c

}

b.setColor("blue")

经典C方式:


func (b *Box) setColor(c string) {

    (*b).color = c

}

(&b).setColor("blue")


郎朗坤
浏览 185回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答