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

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

(Golang) 從列表中處理和格式化 nils

(Golang) 從列表中處理和格式化 nils

Go
米脂 2023-02-06 10:32:23
說(shuō)我期待這個(gè)列表從查詢(xún)到后端:名稱(chēng):沃爾沃,發(fā)動(dòng)機(jī)型號(hào):2NR - FE,保修:2 年,行駛距離: 9000 公里。如果 EngineType 為空,等于 nil,我想將其設(shè)置為“None”,或者如果 Warranty == nil 我想將其設(shè)置為“No warranty found”這是我的循環(huán):    for _, res := range resp.Automobiles {        if res.Cars != nil {            for _, car := range res.Cars {                if car == nil || car.EngineType == nil {                    fmt.Println("None")                } else if car.Warranty == nil {                    fmt.Println("NO Warranty Found")                } else {                    details = []string{*car.Name, *car.EngineType, *car.Warranty, *car.DistanceCovered}                    fmt.Println(strings.Join(details, ","))                }            }        }    }}如果 Warranty == nil 和 EngineType == nil 分別是我期望的輸出:Volvo, 2NR-FE, No warranty found, 9000kmVolvo, None, 2 years, 9000km我得到的輸出:No warranty FoundNone我的代碼只是將行設(shè)置為它檢查的第一個(gè)表達(dá)式我知道我的代碼可能很糟糕,我還在習(xí)慣 Go。
查看完整描述

2 回答

?
HUWWW

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

我得到的輸出


因?yàn)槿绻?EngineType 和 Warranty 都不為零,您只會(huì)打印汽車(chē)的其他詳細(xì)信息。如果其中一個(gè)為零,則省略其他詳細(xì)信息。


您可以使用這樣的輔助函數(shù)來(lái)干掉您的代碼:


func StrOrDefault(s *string, default string) string {

   if s == nil {

     return default

   } else {

      return *s

   }

}

如果有的話,你還必須決定你想要什么輸出car == nil。在下面的代碼中,如果 ,我輸出“None” car == nil。


    for _, res := range resp.Automobiles {

        if res.Cars == nil {

            continue

        }

        for _, car := range res.Cars {

            if car == nil {

                fmt.Println("None")

                continue

            }

            details = []string{

                *car.Name,

                StrOrDefault(car.EngineType, "None"),

                StrOrDefault(car.Warranty, "No warranty found"),

                *car.DistanceCovered,

            }

            fmt.Println(strings.Join(details, ","))

        }

    }


查看完整回答
反對(duì) 回復(fù) 2023-02-06
?
慕尼黑的夜晚無(wú)繁華

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

您可能更喜歡使用標(biāo)準(zhǔn)庫(kù)模板機(jī)制而不是 fmt 例程。正如https://stackoverflow.com/a/32775203/7050833所示,您可以說(shuō)“如果不是”...“其他”來(lái)捕獲 nil 與非 nil 的情況。

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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