gpt4 book ai didi

pointers - 复制一片指针(指向新值)

转载 作者:IT王子 更新时间:2023-10-29 01:43:49 25 4
gpt4 key购买 nike

我想复制一个包含指针的 slice ,这样新 slice 中的指针指向新值:假设 s 是原始 slice ,c 是副本。然后更改 *c[i] 应该不会影响 *s[i]

根据 this answer ,通常的复制方法不会发生这种情况。

执行此操作的最短方法是什么?

最佳答案

使用以下代码复制值:

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
}

Run it in the playground .

此代码创建值的浅拷贝。根据应用程序要求,您可能想要深度复制值,或者如果是结构类型,则复制一个或多个字段。具体取决于实际类型T和应用需求。

关于pointers - 复制一片指针(指向新值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com