看起来很基础,但我不能轻易纠正下面的程序 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()
}
./prog.go:10:6: invalid receiver type B (B is a pointer type)
./prog.go:16:12: B(a) is not a type
首先,我尝试将接收器更改为func (b *B) ,但没有成功。对于第二个,我尝试了 like &B{a},但也没有用。
A实际上是一个复杂的结构体,里面有互斥体(由 生成的结构体protobuf),所以我需要把它保存为指针,同时需要在上面定义额外的方法,所以定义一个新的类型B。
qq_遁去的一_1
MM们
相关分类