[英]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 接受的形式出現。
如果解析失敗,此方法返回UUID
或error
。 您有兩個選項可以避免顯式錯誤處理:
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.