假设我们有一个简单的接口和实现:
type Vertex struct {
X int
Y int
}
type Abser interface {
Abs() float64
}
func (v Vertex) Abs() float64 {
sum := float64(v.X + v.Y)
return math.Sqrt(sum)
}
现在我有一个接口变量:
var abser Abser
我想为它设置一个顶点。我可以设置一的值,或者一个的地址:
v := Vertex{1, 1}
abser = v
abser = &v
两者之间有什么区别?为什么设置顶点的地址有效?这与界面在引擎盖下的工作方式有何关系?我对Go还很陌生,所以任何帮助将不胜感激 🙏
翻阅古今
慕哥6287543
相关分类