拥有此结构
weight
这些功能是否相同?
15
VS
View
我知道他们做相同,但他们真的相同吗?我的意思是,是否存在任何内部差异?
在线试用:{{3}}
答案 0 :(得分:6)
据我所知,他们的工作方式相同。
一个区别是只有第一个可以满足接口规范。
答案 1 :(得分:3)
这些“功能”以同样的方式,实际上它们以几乎相同的方式被调用。该方法称为method expression,接收方为第一个参数:
var s Square
// The method call
s.SetSide(5)
// is equivalent to the method expression
(*Square).SetSide(&s, 5)
SetSide
方法也可以用作method value来满足函数签名func(int)
,而SetSquareSide
则不能。
var f func(int)
f = a.SetSide
f(9)
这是明显的事实,即Square
的方法集满足接口
interface {
SetSide(int)
}