gstructs组件用于方便获取结构体的相关信息。

创新互联是一家专业的成都网站建设公司,我们专注网站设计、成都网站设计、网络营销、企业网站建设,外链,1元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。
这是一个偏底层组件,一般业务上很少会用到,在框架、基础库、中间件编写中用到。
使用方式:
import "github.com/GOgf/gf/v2/os/gstructs"接口文档:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gstructs
Fields 将输入参数in的 Pointer 属性的字段以Field切片的形式返回。Fields(in FieldsInput) ([]Field, error)
func main() {
	type User struct {
		Id   int
		Name string `params:"name"`
		Pass string `my-tag1:"pass1" my-tag2:"pass2" params:"pass"`
	}
	var user *User
	fields, _ := gstructs.Fields(gstructs.FieldsInput{
		Pointer:         user,
		RecursiveOption: 0,
	})
	g.Dump(fields)
}
// Output:
[
    {
        Value:    "",
        Field:    {
            Name:      "Id",
            PkgPath:   "",
            Type:      "int",
            Tag:       "",
            Offset:    0,
            Index:     [
                0,
            ],
            Anonymous: false,
        },
        TagValue: "",
    },
    {
        Value:    {},
        Field:    {
            Name:      "Name",
            PkgPath:   "",
            Type:      "string",
            Tag:       "params:\"name\"",
            Offset:    8,
            Index:     [
                1,
            ],
            Anonymous: false,
        },
        TagValue: "",
    },
    {
        Value:    {},
        Field:    {
            Name:      "Pass",
            PkgPath:   "",
            Type:      "string",
            Tag:       "my-tag1:\"pass1\" my-tag2:\"pass2\" params:\"pass\"",
            Offset:    24,
            Index:     [
                2,
            ],
            Anonymous: false,
        },
        TagValue: "",
    },
] 
TagMapName从参数pointer中检索tag,并以map[string]string的形式返回。  pointer的类型应该是 struct/*struct。TagMapName(pointer interface{}, priority []string) (map[string]string, error)
func main() {
	type User struct {
		Id   int
		Name string `params:"name"`
		Pass string `my-tag1:"pass1" my-tag2:"pass2" params:"pass"`
	}
	var user User
	m, _ := gstructs.TagMapName(user, []string{"params"})
	g.Dump(m)
}
// Output:
{
    "name": "Name",
    "pass": "Pass",
}            
                文章名称:创新互联GoFrame教程:GoFrame对象信息-gstructs
                
                文章位置:http://www.csdahua.cn/qtweb/news4/204504.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网