我想制作一個包含指針的切片副本,以便新切片中的指針指向新值:假設s是原始切片,c是副本。那么改變*c[i]應該不會影響*s[i]。最短的方法是什么?
1 回答

幕布斯6054654
TA貢獻1876條經驗 獲得超7個贊
使用以下代碼復制值:
c := make([]*T, len(s))
for i, p := range s {
if p == nil {
// Skip to next for nil source pointer
continue
}
// Create shallow copy of source element
v := *p
// Assign address of copy to destination.
c[i] = &v
}
此代碼創建值的淺表副本。根據應用程序要求,您可能想要深度復制值,或者如果是結構類型,則復制一個或多個字段。具體取決于實際類型 T 和應用要求。
- 1 回答
- 0 關注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消