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

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

在結(jié)構(gòu)上重用方法

在結(jié)構(gòu)上重用方法

Go
藍(lán)山帝景 2022-07-04 16:58:24
我有一個方法,它將一個 URL 帶到一個 yaml 文件并將其解組為一個結(jié)構(gòu)。它沒有什么獨特之處,所以我想在另一個結(jié)構(gòu)上使用它。type SWConfig struct {    Name      string `yaml:"name"`    Version   string `yaml:"version"`    BuildType string `yaml:"buildType"`}func (c *SWConfig) getConfiguration(url string) {    resp, err := http.Get(url)    if err != nil {        log.Fatalf("ERROR: GET request failed: %s\n", err.Error())    }    if resp.StatusCode != http.StatusOK {        log.Fatalf("ERROR: %v:  %s\n", resp.Status, url)    }    source, err := ioutil.ReadAll(resp.Body)    if err != nil {        log.Fatalf("ERROR: could not read response: %s\n", err.Error())    }    err = yaml.Unmarshal(source, c)    if err != nil {        log.Fatalf("ERROR: could not read YAML: %s\n", err.Error())    }}var swConfig SWConfigswConfig.getConfiguration(swURL)fmt.Println(swConfig.Name)另一個結(jié)構(gòu)將具有不同的字段,但對于此方法而言,這同樣無關(guān)緊要。是否可以重用此方法還是需要將其轉(zhuǎn)換為函數(shù)?
查看完整描述

1 回答

?
月關(guān)寶盒

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

使用此實用功能。它適用于指向任何類型的指針。


// fetchYAML unmarshals the YAML document at url to the value 

// pointed to by v.

func fetchYAML(url string, v interface{}) error {

    resp, err := http.Get(url)

    if err != nil {

        return err

    }

    if resp.StatusCode != http.StatusOK {

        return fmt.Errorf("bad status: %v:  %s\n", resp.Status, url)

    }

    source, err := ioutil.ReadAll(resp.Body)

    if err != nil {

        return err

    }

    err = yaml.Unmarshal(source, v)

    return err

}

像這樣稱呼它:


func (c *SWConfig) getConfiguration(url string) {

    if err := fetchYAML(url, c); err != nil {

        log.Fatalf("ERROR: get value failed: %s\n", err.Error())

    }

}


查看完整回答
反對 回復(fù) 2022-07-04
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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