slice vs map:理解参数参考行为,但是,在添加新的元素,切片和地图时,进行了不同的行为。在提供的代码示例中,将新元素附加到地图(EditMap)中会导致这些元素可以通过原始地图访问。但是,附加到切片(Editslice)对原始切片没有影响。
相反,当附加到切片上时,则必须修改slice标头(描述切片的长度,容量和数组指针)。但是,由于GO按值通过变量,因此对Slice标头(在传递参数中)的副本进行的任何更改都不会反映在原始切片中。在切片和地图之间实现一致的行为,可以作为指针实现slices,类似于地图。这将确保通过指针进行切片进行修改也可以修改原始切片。但是,由于缺乏传递和使用切片指针的语言支持,这种方法在GO中并不常见。取而代之的是,在修改后返回新切片的惯例被广泛采用。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3