栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Go中遍历结构体的字段

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Go中遍历结构体的字段

reflect.Value
使用检索字段的后,
Field(i)
您可以通过调用从中获取接口值
Interface()
。然后,所述接口值表示字段的值。

您可能知道,没有函数可以将字段的值转换为具体类型,因为您可能没有泛型。因此,不存在与签名没有功能

GetValue() T

T
被该字段(其改变,当然,这取决于字段)的类型。

您可以随时获得最接近的结果,

GetValue() interface{}
而这正是所
reflect.Value.Interface()
提供的。

以下代码说明了如何使用反射(play)获取结构中每个导出字段的值:

import (    "fmt"    "reflect")func main() {    x := struct{Foo string; Bar int }{"foo", 2}    v := reflect.ValueOf(x)    values := make([]interface{}, v.NumField())    for i := 0; i < v.NumField(); i++ {        values[i] = v.Field(i).Interface()    }    fmt.Println(values)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/393334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号