gpt4 book ai didi

Go:再次将类型为 uuid.UUID (satori) 的 reflect.Value 转换回 uuid.UUID

转载 作者:数据小太阳 更新时间:2023-10-29 03:03:01 26 4
gpt4 key购买 nike

我试图再次将反射的 UUID 转换回实际的 UUID 对象,但找不到方法,当我打印反射值时它看起来是正确的,但在尝试转换时我找不到方法。

package main

import (
"fmt"
"reflect"

uuid "github.com/satori/go.uuid"
)

func main() {
value := uuid.Must(uuid.NewV4())
reflectedValue := reflect.ValueOf(value)
fmt.Println(reflectedValue)
result := reflectedValue.String()
fmt.Println(result)
}

输出:

$ go run main.go
0cca93f8-1763-4816-a2a0-09e7aeeb674c
<uuid.UUID Value>

如何将 reflectedValue 直接转换为 uuid.UUID 或 []byte/string,以便我可以从中创建一个 uuid.UUID 对象。由于 fmt.Println 设法打印出正确的值,因此必须能够进行转换,但我不知道如何进行。

看起来 uuid.UUID 对象具有 16 个 uint8 值的数据结构。

最佳答案

使用 type assertionunderlying value 上:

u, ok := reflectedValue.Interface().(uuid.UUID)

关于Go:再次将类型为 uuid.UUID (satori) 的 reflect.Value 转换回 uuid.UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50826889/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com