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

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

當(dāng)另一個(gè)包訪問時(shí),Json 解組后結(jié)構(gòu)為空

當(dāng)另一個(gè)包訪問時(shí),Json 解組后結(jié)構(gòu)為空

Go
小唯快跑啊 2023-06-05 17:17:42
Contact我正在使用具有方法的結(jié)構(gòu)Load()。這個(gè)想法是用數(shù)據(jù)Load()填充Contact的字段。數(shù)據(jù)從服務(wù)器返回的 json 中解組。加載后,我希望能夠訪問Contact.Load()我知道 json 正在正確解組,因?yàn)槲铱梢栽诮饨M后立即將數(shù)據(jù)打印到控制臺。Contact但是,此數(shù)據(jù)一旦加載就不會出現(xiàn)。所以當(dāng)我創(chuàng)建一個(gè)新的Contact并調(diào)用它的Load()方法時(shí),當(dāng)我去訪問它們時(shí)它的數(shù)據(jù)字段仍然是空的。這是我的代碼的簡化版本(為簡潔起見減去導(dǎo)入):package mainfunc main() {    client := &http.Client{}    mp := myPackage.NewContact("1234", client)    if err := mp.Load(); err != nil {        log.Println(err)    }    // prints empty string    log.Println(mp.EmailOptIn)}// myPackagepackage myPackagetype Contact struct {    ID          string    client      *http.Client    EmailOptIn  string      `json:"marketing_optin"`}func NewContact(ID string, client *http.Client) *Contact {    return &Contact{        ID:     ID,        client: client,    }}func (contact Contact) Load() error {    req, err := http.NewRequest("GET", "https://anAPI.com/"+contact.ID, nil)    if err != nil {        log.Println(err)    }    resp, err := contact.client.Do(req)    if err != nil {        log.Println(err)    }    defer resp.Body.Close()    if resp.StatusCode == 200 {        body, _ := ioutil.ReadAll(resp.Body)        if err = json.Unmarshal(body, &contact); err != nil {            log.Println("Can't unmarshall: " + err.Error())        }        // prints "Opted_in"        log.Println(contact.EmailOptIn)        return nil    }    return errors.New("oh dear")}
查看完整描述

1 回答

?
牧羊人nacy

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

Contact.Load()修改結(jié)構(gòu),所以為了保留更改,它必須有一個(gè)指針接收器:

func?(contact?*Contact)?Load()?error?{
????//?...
????}

所有參數(shù)(包括接收者)都按值傳遞,這意味著制作了一個(gè)副本,函數(shù)/方法只能對副本進(jìn)行操作。如果接收者不是指針,則方法所做的所有更改都在方法返回時(shí)丟棄的副本上。

如果接收者是一個(gè)指針,它也會被復(fù)制,但是你不想修改指針而是指向的值,它會是一樣的。

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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