创新互联GoFrame教程:GoFrame类型转换-Structs转换

基本介绍

我们之前提到可以使用​Struct​方法实现对​struct​对象的转换,那么我们当然也可以实现对​struct​数组的转换,​struct​数组转换使用的是​Structs​方法实现。​Structs​方法建立在Struct方法的基础之上,所有的转换规则与​Struct​相同,只是增加了对​struct​数组类型的支持。

创新互联是一家专注于成都做网站、网站建设与策划设计,鄂尔多斯网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:鄂尔多斯等地区。鄂尔多斯做网站价格咨询:028-86922220

方法定义

Structs​方法定义如下:

// Structs converts any slice to given struct slice.
func Structs(params interface{}, pointer interface{}, mapping ...map[string]string) (err error)

其中​pointer​目标转换参数类型需要为​*[]struct/*[]struct

使用示例

我们来看一个简单示例即可理解。

package main

import (
	"github.com/GOgf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/util/gconv"
)

func main() {
	type User struct {
		Uid  int
		Name string
	}
	params := g.Slice{
		g.Map{
			"uid":  1,
			"name": "john",
		},
		g.Map{
			"uid":  2,
			"name": "smith",
		},
	}
	var users []*User
	if err := gconv.Structs(params, &users); err != nil {
		panic(err)
	}
	g.Dump(users)
}

执行后,终端输出:

[
    {
            "Uid": 1,
            "Name": "john"
    },
    {
            "Uid": 2,
            "Name": "smith"
    }
]

文章名称:创新互联GoFrame教程:GoFrame类型转换-Structs转换
文章来源:http://www.shufengxianlan.com/qtweb/news44/21794.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联