假设我已经定义了这个结构:type Vertex struct { X, Y float64}现在它是完全合法的,像这样使用它:func (v *Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y)}func main() { v := &Vertex{3, 4} fmt.Println(v.Abs())}但不使用指针也可以:func main() { v := Vertex{3, 4} fmt.Println(v.Abs())}两种情况下的结果是相同的,但它们在内部有何不同?使用指针是否会使程序运行得更快?附注。我知道该Abs()函数需要一个指针作为接收器。这解释了为什么稍后在 main 函数中使用指针的原因。但是为什么当我不使用指针直接调用Abs()结构体实例时程序不吐出错误呢?
1 回答
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消