第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何深度復(fù)制對(duì)象

如何深度復(fù)制對(duì)象

Go
哆啦的時(shí)光機(jī) 2023-06-05 19:37:02
我有一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),它定義了一個(gè)類型P,我想對(duì)這種數(shù)據(jù)結(jié)構(gòu)的一個(gè)實(shí)例進(jìn)行深度復(fù)制。我找到了這個(gè)庫,但是,考慮到 Go 語言的語義,像下面這樣的方法不會(huì)更慣用嗎?:func?(receiver?P)?copy()?*P{ ??return?&receiver }由于該方法接收類型P的值(并且值始終通過副本傳遞),因此結(jié)果應(yīng)該是對(duì)源的深層副本的引用,如本例所示:src?:=?new(P) dcp?:=?src.copy()的確,src?!=?dst?=>?true reflect.DeepEqual(*src,?*dst)?=>?true
查看完整描述

1 回答

?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

此測(cè)試表明您的方法不執(zhí)行復(fù)制


package main


import (

    "fmt"

)


type teapot struct {

   t []string

}

type P struct {

   a string

   b teapot

}


func (receiver P) copy() *P{

   return &receiver

}


func main() {


x:=new(P)

x.b.t=[]string{"aa","bb"}

y:=x.copy()


y.b.t[1]="cc"  // y is altered but x should be the same


fmt.Println(x)  // but as you can see...


}

https://play.golang.org/p/xL-E4XKNXYe


查看完整回答
反對(duì) 回復(fù) 2023-06-05
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)