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

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

為什么把兩個不同的對象解碼成同一個對象,但是bool成員沒有變?

為什么把兩個不同的對象解碼成同一個對象,但是bool成員沒有變?

Go
子衿沉夜 2023-06-19 15:41:32
我正在使用 go 的 encoding/gob 將類型為 T 的兩個不同對象解碼為同一個對象,但是對象的 bool 成員在第二次解碼后沒有改變。為什么?package mainimport (    "fmt"    "encoding/gob"    "bytes")type T struct {    X int    Y string    Z bool}func main() {    t := T{}    buf := new(bytes.Buffer)    enc := gob.NewEncoder(buf)    dec := gob.NewDecoder(buf)    t1 := T{1, "1", true}    enc.Encode(t1)    dec.Decode(&t)    fmt.Printf("%+v\n", t)    // If t is a new entity, the second decode into t can product expected result: {X:2 Y:2 Z:false}    // otherwise, t's bool member has not been changed after the second decode.    // t = T{}    t2 := T{2, "2", false}    enc.Encode(t2)    dec.Decode(&t)    fmt.Printf("%+v\n", t)    // result:    // {X:1 Y:1 Z:true}    // {X:2 Y:2 Z:true}}
查看完整描述

2 回答

?
揚帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

如果一個字段的類型為零值(數(shù)組除外;見上文),它會從傳輸中被忽略。

而“false”是零值。如果您嘗試設(shè)置t2.X = 0它會顯示相同的行為。


查看完整回答
反對 回復(fù) 2023-06-19
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

意外行為來自重用內(nèi)存而不清理它。您正在重復(fù)使用 t 和 b 兩次,這會使您面臨許多可能的錯誤。這是 t 產(chǎn)生你的問題,但它也可能是 b 。


查看完整回答
反對 回復(fù) 2023-06-19
  • 2 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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