gpt4 book ai didi

reflection - golang 反射(reflect)创建对象报错

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

less main.go输出:

```

package main

import (
"reflect"
"net/url"
"fmt"
)

type User struct {
Id uint64 `json:"id"`
No *string `json:"no"`
Identity string `json:"identity"`
Head url.URL `json:"head"`
}

func main() {
t := reflect.TypeOf(User{})
u := reflect.New(t).Elem().Interface()
fmt.Printf("u is %T, %v\n", u, u)
}

```

go version输出:


go version go1.5.2 darwin/amd64

go build main.go正确

./main输出:


u is main.User, {0 <nil> { <nil> }}

怎么了??为什么你只反对第三场? User结构包括四个字段!

在我的真实项目中,我发现创建的对象的字段类型不正确

最佳答案

您的结构实际上有 4 个字段,请注意分隔空字符串字段的额外空格。

尝试使用 %#v 来显示您的结构的 golang 语法表示,这样更容易阅读(但在大型结构上可能变得非常拥挤)。

关于reflection - golang 反射(reflect)创建对象报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438636/

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