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

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

在 go 中初始化結構時如何處理空值?

在 go 中初始化結構時如何處理空值?

Go
猛跑小豬 2022-08-24 11:37:08
我正在嘗試拆分逗號分隔的字符串,并使用值來初始化結構。這就是我現在的做法:type Address struct {    Street  string    City    string    ZipCode string}    s := strings.Split("street,city,zip", ",")data := Address{Street: s[0], City: s[1], ZipCode: s[2]}我遇到的問題是,我還必須處理此輸入:"street,""street,city"任何想法如何在不超出范圍的情況下做到這一點?我已經研究過使用三點語法解壓縮...但結構似乎并不支持它。
查看完整描述

2 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

在訪問元素之前檢查切片的長度:


data := Address{}

s := strings.Split("street,city,zip", ",")

data.Street = s[0]

if len(s) > 1 {

    data.City = s[1]

}

if len(s) > 2 {

    data.ZipCode = s[2]

}

如果這種情況經常出現,那么寫一個簡單的幫助器函數:


func get(s []string, i int) string {

    if i >= len(s) {

        return ""

    }

    return s[i]

}

像這樣使用它:


data := Address{Street: get(s, 0), City: get(s, 1), ZipCode: get(s, 2)}


查看完整回答
反對 回復 2022-08-24
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

如果您寧愿使用稍微多一點的內存和更少的檢查,您也可以執(zhí)行以下操作:


s := strings.Split("street,city,zip", ",")

s = append(s, make([]string, 3 - len(s))...) // Change 3 to however many fields you expect

data := Address{Street: s[0], City: s[1], ZipCode: s[2]}

這樣做的作用是將空字符串追加到切片,以確保它始終具有正確數量的元素。游樂場示例:https://play.golang.org/p/Igj6yT5fffl


查看完整回答
反對 回復 2022-08-24
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號