首頁 >後端開發 >Golang >如何在 Go 中最好地表示可選字串?

如何在 Go 中最好地表示可選字串?

Susan Sarandon
Susan Sarandon原創
2024-12-20 06:01:09313瀏覽

How Can I Best Represent Optional Strings in Go?

慣用的Go:表示可選字串

Go 中變體類型的缺失對建模值提出了挑戰,這些值可以存在於不存在的值中。或現在的形式。這對於字串尤其重要,字串不能接受 nil 作為成員。

用於建模可選字串的選項

  1. 字串:雖然使用指向字串(字串)的指標可以工作,但它在引用字串等操作中引入了尷尬文字。
  2. 包裝器:將字串及其存在狀態封裝在包裝器中是一個可行的解決方案,但它偏離了僅使用字串的目標。
  3. 具有特定空值的字串:

    a. 空字串(""):將空字串指定為null 元素,為初始化和處理映射中缺少的值提供了便利。

    b. 無效的UTF-8 位元組序列:對於空字串有效的情況,可以使用短的無效UTF-8 位元組序列(例如「xff」)來表示空值,同時允許有效的文字字串。

使用無效的UTF-8 位元組序列

  1. 定義一個常數,例如const Null = "xff",來表示空值。
  2. 這種方法允許空字串和有效文字作為可選值.
  3. utf8.ValidString() 函數可用於檢查字串是否有效文字。

範例:

const Null = "\xff"

func main() {
    fmt.Println(utf8.ValidString(Null)) // false

    s := Null
    fmt.Println([]byte(s)) // [255]
    fmt.Println(s == Null) // true
    s = "notnull"
    fmt.Println(s == Null) // false
}

以上是如何在 Go 中最好地表示可選字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn