我定义一个struct 并这样实现一个方法
go
type Rect struct{ x,y float64 width,height float64 } func (r Rect) Area() float64{ return r.width*r.height }
为什么我两种实例化的方式都可以调用到Area
go
rect := &Rect{0,0,100,200} //1 rect := Rect{0,0,100,200} //2 rect.Area()
或者我这样定义Area方法
go
func (r *Rect) Area() float64{ return r.width*r.height }
以上两种实例化的方式都可以呢? 我知道一个是引用的形式 一个是值传递的形式,但是我传进去的参数不应该是相匹配的吗?
学会搜索
http://segmentfault.com/q/1010000000198984#a-1020000000199002