bsr*_*bsr 2 methods pointers go
这看起来很基础,但我无法轻松纠正以下程序 https://play.golang.org/p/8IJn7g0m1As
import (
"fmt"
)
type A struct{ value int }
type B *A
func (b B) Print() {
fmt.Printf("Value: %d\n", b.value)
}
func main() {
a := &A{1}
b := new(B(a))
b.Print()
}
Run Code Online (Sandbox Code Playgroud)
./prog.go:10:6: invalid receiver type B (B is a pointer type)
./prog.go:16:12: B(a) is not a type
Run Code Online (Sandbox Code Playgroud)
首先,我尝试将接收器更改为func (b *B) ,但没有成功。对于第二个,我尝试过&B{a},但这也不起作用。
A实际上是一个复杂的结构体,里面有互斥体(由 生成的结构体protobuf),所以我需要将它保留为指针,同时需要在其上定义额外的方法,因此定义一个新类型B。