arrays - 如何将 UUID 字符串转换为 UUID 类型
问题描述
我有一个要更改为 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
, 它只返回 aUUID
, 但可能nil
在出错的情况下Must
FromString
, 当is not的错误时会发生恐慌nil
。你像这样使用:
uuid.Must(uuid.FromString("69359037-9599-48e7-b8f2-48393c019135"))
与github.com/google/uuid
,使用uuid.Parse
。该模式的其余部分与 相同satori/uuid
。
在您的特定情况下,解析 UUID 似乎没有问题,但是您发布的代码似乎没有产生您提到的错误。相反,还有另一个问题:
a[0], _ = uuid.FromString(a[0])
您正在尝试重新分配 的值uuid.FromString
,这是 a UUID
,a[0]
大概是 a string
。
以下代码可以正常工作(参见Go Play):
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
}
}
推荐阅读
- jquery - 禁用点击div但不悬停?
- java - 格式化 JSON 对象并通过 volley 发送到服务器的正确方法
- arrays - 误差散点图时间与风速(来自表格的数据)MATLAB
- libstdc++ - dlopen 在实例化对象的库中失败
- c# - 任务
导致实体框架挂起 - java - 禁用 apache LogFactory 和 Log 的自动导入
- python - python函数不读取字符串列表
- ios - Alamofire API(Digest Access Authentication) 数据访问错误
- javascript - 如何按日期范围过滤日期数组?
- javascript - 用于用户名验证的 JavaScript 正则表达式