簡體   English   中英

如何將 UUID 字符串轉換為 UUID 類型

[英]How to convert a UUID string into UUID type

我有一個要更改為 UUID 的字符串 UUID 數組。 數據示例:

["69359037-9599-48e7-b8f2-48393c019135" "1d8a7307-b5f8-4686-b9dc-b752430abbd8"]

我該如何更改或解析它? 我嘗試使用uuid.fromString()方法:

if len(a) == 2 {
    user1 := a[0]
    a[0], _ = uuid.FromString(a[0])
}

但是,這給了我一個錯誤

FromString 返回從字符串輸入解析的 UUID。 輸入應以 UnmarshalText 接受的形式出現。

對於github.com/satori/go.uuid ,使用uuid.FromString

FromString 返回從字符串輸入解析的 UUID。 輸入應以 UnmarshalText 接受的形式出現。

如果解析失敗,此方法返回UUIDerror 您有兩個選項可以避免顯式錯誤處理:

  • FromStringOrNil ,它只返回一個UUID ,但在出錯的情況下可能返回nil
  • Must ,當FromString的錯誤不為nil時會發生恐慌。 你使用像:
uuid.Must(uuid.FromString("69359037-9599-48e7-b8f2-48393c019135"))

對於github.com/google/uuid ,使用uuid.Parse 模式的 rest 與 satori satori/uuid相同。


在您的具體情況下,解析 UUID 似乎沒有問題,但是您發布的代碼似乎沒有產生您提到的錯誤。 相反還有另一個問題:

a[0], _ = uuid.FromString(a[0])

您正在嘗試將uuid.FromString的值(這是一個UUID )重新分配給a[0] ,這大概是一個string

以下代碼工作正常(見Go 播放):

var a = []string{"69359037-9599-48e7-b8f2-48393c019135", "1d8a7307-b5f8-4686-b9dc-b752430abbd8"}

func main() {

if len(a) == 2 {
        user1 := a[0]
        s, _ := uuid.FromString(a[0])

        fmt.Println(user1) // prints 69359037-9599-48e7-b8f2-48393c019135
        fmt.Println(s) // prints 69359037-9599-48e7-b8f2-48393c019135
    }
}

暫無
暫無

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

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