浏览 59
更新于 2020-08-23 08:36
指针和值
第二章我们讨论了到底是传值还是传指针。现在我们有相同的问题在映射和数组上,到底该使用他们哪个?
a := make([]Saiyan, 10)
// 或者
b := make([]*Saiyan, 10)
许多开发者认为应该传递 b
或者返回它在一个函数中会更加高效。然而,传递/返回的是切片的副本,但是切片本身就是一个引用。所以传递返回切片本身,没有什么区别。
当你改变切片或者映射值的时候,你将看到不同。这一点上,和我们在第二章看到的逻辑相同。所以决定使用指针数组还是值数组归结为你如何使用单个值,而不是你用数组还是映射。