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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

深入/淺拷貝

深入/淺拷貝

Go
守著一只汪 2021-10-18 16:16:30
我試圖在 Go 中復制一個結構體,但在這方面找不到很多資源。這是我所擁有的:type Server struct {    HTTPRoot       string // Location of the current subdirectory    StaticRoot     string // Folder containing static files for all domains    Auth           Auth    FormRecipients []string    Router         *httprouter.Router}func (s *Server) Copy() (c *Server) {    c.HTTPRoot = s.HTTPRoot    c.StaticRoot = s.StaticRoot    c.Auth = s.Auth    c.FormRecipients = s.FormRecipients    c.Router = s.Router    return}第一個問題,這不會是深拷貝,因為我不是在拷貝 s.Auth。這至少是一個正確的淺拷貝嗎?第二個問題,是否有更慣用的方式來執(zhí)行深(或淺)復制?編輯:我玩過的另一種選擇非常簡單,它使用了參數(shù)按值傳遞的事實。func (s *Server) Copy() (s2 *Server) {    tmp := s    s2 = &tmp    return}這個版本好點了嗎?(這是正確的嗎?)
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

作業(yè)副本。你的第二個函數(shù)很接近,你只需要取消引用s.

這將復制*Server sc

c := new(Server)
*c = *s

至于深拷貝,則需要遍歷字段,并確定需要遞歸復制的內容。*httprouter.Router如果它包含未導出字段中的數(shù)據(jù),則取決于是什么,您可能無法進行深層復制。


查看完整回答
反對 回復 2021-10-18
  • 1 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號