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

幕布斯6054654
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用以下代碼復(fù)制值:
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
}
此代碼創(chuàng)建值的淺表副本。根據(jù)應(yīng)用程序要求,您可能想要深度復(fù)制值,或者如果是結(jié)構(gòu)類型,則復(fù)制一個(gè)或多個(gè)字段。具體取決于實(shí)際類型 T 和應(yīng)用要求。
- 1 回答
- 0 關(guān)注
- 132 瀏覽
添加回答
舉報(bào)
0/150
提交
取消