在Go中将Slice指针转换为Slice

时间:2018-10-26 08:36:46

标签: go golang-migrate

我有一些方法可以返回切片指针中的数据,现在我必须将其转换为切片数组。如何将切片指针转换为切片数组。

<div class="parent">
   <div class="child"></div>
   <div class="child"></div>
   <div class="child"></div>
   <div class="child"></div>
</div>

我想将切片指针的 peerRoundState 类型转换为 PeerRoundStates 切片数组。

1 个答案:

答案 0 :(得分:1)

对于切片,您必须谨慎使用值切片而不是指针val := *ptr,因为两者都将指向相同的数据数组地址。 切片指针所做的更改也将反映在值切片上,因为切片数据结构包含对实际数据数组的引用。

检查playground example的2种从指针到值的赋值情况。这里描述了两种情况:

  1. 将切片复制为值-将切片的属性和地址复制到数据数组中
  2. 复制切片元素-复制所有切片元素并创建一个新切片