猿问

golang 反映创建对象是错误的

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>     }}


什么事??为什么你只反对第三个领域?用户结构包括四个字段!


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


慕无忌1623718
浏览 160回答 1
1回答

慕码人8056858

您的结构实际上有 4 个字段,请注意分隔空字符串字段的额外空格。尝试使用%#v来显示结构的 golang 语法表示,这样更容易阅读(但在大型结构上可能会变得非常拥挤)。
随时随地看视频慕课网APP

相关分类

Go
我要回答