GoFrame 類型轉(zhuǎn)換-Structs轉(zhuǎn)換

2022-03-30 15:46 更新

基本介紹

我們之前提到可以使用?Struct?方法實現(xiàn)對?struct?對象的轉(zhuǎn)換,那么我們當然也可以實現(xiàn)對?struct?數(shù)組的轉(zhuǎn)換,?struct?數(shù)組轉(zhuǎn)換使用的是?Structs?方法實現(xiàn)。?Structs?方法建立在Struct方法的基礎之上,所有的轉(zhuǎn)換規(guī)則與?Struct?相同,只是增加了對?struct?數(shù)組類型的支持。

方法定義

?Structs?方法定義如下:

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

其中?pointer?目標轉(zhuǎn)換參數(shù)類型需要為?*[]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)
}

執(zhí)行后,終端輸出:

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號