当前位置: 首页 > 网络应用技术

当Go Slice用作函数参数时的一些想法

时间:2023-03-09 02:16:46 网络应用技术

  GO语言中的切片实际上是一种结构,其运行时的结构如下:

  这个非常重要。这意味着,将切片用作函数参数时,其传输机制与结构传输机制相同,即值传输,即传递原始切片的副本。

  另一个非常重要的一点是,切片结构中的数组是指针,这意味着数组的值是基础数组的地址。通过函数后,此值没有更改。

  因此,可以看出,当切片作为函数参数传递时,在函数中的切片上执行了一些修改操作,这将影响函数之外的原始切片。

  首先查看段落:

  问题:

  回答:

  上面的栗子和栗子之间的唯一区别是,在功能体中,切片添加了一个apend操作

  那么问题是:

  最后,我想说的是,如果您确定写作的功能需要修改影响功能外部片段的切片,那么您的函数参数应使用指针。

  希望您现在可以清楚地回答以下问题

  问题:

  添加一个小问题:

  代码中两行的两行之间有什么区别?

  :对于切片,使用格式输出时,如果未在前面添加地址,则打印了切片中第一个元素的地址;如果添加了地址

  原始:https://juejin.cn/post/7096055555511658526