猿问

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

我想制作一个包含指针的切片副本,以便新切片中的指针指向新值:假设s是原始切片,c是副本。那么改变*c[i]应该不会影响*s[i]

最短的方法是什么?


汪汪一只猫
浏览 100回答 1
1回答

幕布斯6054654

使用以下代码复制值: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 和应用要求。
随时随地看视频慕课网APP

相关分类

Go
我要回答