簡體   English   中英

golang - 如何將字節切片轉換為布爾值?

[英]golang - How to convert byte slice to bool?

我有一個數據庫 sql.NullBool。 為了將 json 解組到其中,我正在寫這個小 function。我可以通過簡單地將字節數組轉換為字符串 (string(data))...bool 則不然。 知道如何轉換為 bool 嗎?

type NullBool struct {
    sql.NullBool
}

func (b *NullBool) UnmarshalJSON(data []byte) error {
  b.Bool = bool(data) //BREAKS!! 
  b.Valid = true
  return nil
}

最簡單的方法是使用strconv.ParseBool包。 像這樣:

func (b *NullBool) UnmarshalJSON(data []byte) error {
    var err error
    b.Bool, err = strconv.ParseBool(string(data))
    b.Valid = (err == nil)
    return err
}

您幾乎可以直接使用json模塊。

func (nb *NullBool) UnmarshalJSON(data []byte) error {
    err := json.Unmarshal(data, &nb.Bool)
    nb.Valid = (err == nil)
    return err
}

它認為簡單的方法是像這樣檢查切片長度:

b := []byte("data")
isByteSliceValid := len(b) != 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM