最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GoFrame框架Scan類型轉(zhuǎn)換實例

 更新時間:2022年06月10日 10:22:36   作者:王中陽Go  
這篇文章主要為大家介紹了GoFrame框架Scan類型轉(zhuǎn)換的實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

Scan轉(zhuǎn)換方法可以實現(xiàn)對任意參數(shù)到struct/struct數(shù)組/map/map數(shù)組的轉(zhuǎn)換,并且根據(jù)開發(fā)者輸入的轉(zhuǎn)換目標參數(shù)自動識別執(zhí)行轉(zhuǎn)換。

方法定義

// Scan automatically calls MapToMap, MapToMaps, Struct or Structs function according to
// the type of parameter `pointer` to implement the converting.
// It calls function MapToMap if `pointer` is type of *map to do the converting.
// It calls function MapToMaps if `pointer` is type of *[]map/*[]*map to do the converting.
// It calls function Struct if `pointer` is type of *struct/**struct to do the converting.
// It calls function Structs if `pointer` is type of *[]struct/*[]*struct to do the converting.
func Scan(params interface{}, pointer interface{}, mapping ...map[string]string) (err error)

自動識別轉(zhuǎn)換Struct結(jié)構(gòu)體

示例代碼

package main
import (
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/util/gconv"
)
func main() {
	type User struct {
		Uid  int
		Name string
	}
	params := g.Map{
		"uid":  1,
		"name": "王中陽",
	}
	var user *User
	if err := gconv.Scan(params, &user); err != nil {
		panic(err)
	}
	g.Dump(user)
}

運行結(jié)果

自動識別轉(zhuǎn)換Struct數(shù)組

示例代碼

package main
import (
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/util/gconv"
)
func main() {
	type User struct {
		Uid  int
		Name string
	}
	params := g.Slice{
		g.Map{
			"uid":  1,
			"name": "優(yōu)弧",
		},
		g.Map{
			"uid":  2,
			"name": "船長",
		},
	}
	var users []*User
	if err := gconv.Scan(params, &users); err != nil {
		panic(err)
	}
	g.Dump(users)
}

運行結(jié)果

自動識別轉(zhuǎn)換Map

示例代碼

package main
import (
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/util/gconv"
)
func main() {
	var (
		user   map[string]string
		params = g.Map{
			"uid":  1,
			"name": "王中陽",
		}
	)
	if err := gconv.Scan(params, &user); err != nil {
		panic(err)
	}
	g.Dump(user)
}

運行結(jié)果

自動識別轉(zhuǎn)換Map數(shù)組

示例代碼

package main
import (
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/util/gconv"
)
func main() {
	var (
		users  []map[string]string
		params = g.Slice{
			g.Map{
				"uid":  1,
				"name": "優(yōu)弧",
			},
			g.Map{
				"uid":  2,
				"name": "船長",
			},
		}
	)
	if err := gconv.Scan(params, &users); err != nil {
		panic(err)
	}
	g.Dump(users)
}

運行結(jié)果

總結(jié)

我們使用Go語言的開發(fā)過程中,json數(shù)據(jù)和結(jié)構(gòu)體的轉(zhuǎn)換是經(jīng)常遇到的。

GoFrame為我們封裝了Scan轉(zhuǎn)換方法可以實現(xiàn)對任意參數(shù)到struct/struct數(shù)組/map/map數(shù)組的轉(zhuǎn)換,并且根據(jù)開發(fā)者輸入的轉(zhuǎn)換目標參數(shù)自動識別執(zhí)行轉(zhuǎn)換。

以上就是GoFrame框架Scan類型轉(zhuǎn)換實例的詳細內(nèi)容,更多關(guān)于GoFrame框架Scan類型轉(zhuǎn)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go語言調(diào)用Shell與可執(zhí)行文件的實現(xiàn)

    Go語言調(diào)用Shell與可執(zhí)行文件的實現(xiàn)

    這篇文章主要介紹了Go語言調(diào)用Shell與可執(zhí)行文件的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • go Antlr重構(gòu)腳本解釋器實現(xiàn)示例

    go Antlr重構(gòu)腳本解釋器實現(xiàn)示例

    這篇文章主要為大家介紹了go Antlr重構(gòu)腳本解釋器實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Golang使用http協(xié)議實現(xiàn)心跳檢測程序過程詳解

    Golang使用http協(xié)議實現(xiàn)心跳檢測程序過程詳解

    這篇文章主要介紹了Golang使用http協(xié)議實現(xiàn)心跳檢測程序過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • golang中拿slice當queue和拿list當queue使用分析

    golang中拿slice當queue和拿list當queue使用分析

    這篇文章主要為大家介紹了golang?中拿slice當queue和拿list當queue使用分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Go語言實現(xiàn)分布式鎖

    Go語言實現(xiàn)分布式鎖

    分布式鎖是控制分布式系統(tǒng)之間同步訪問共享資源的一種方式。如果不同的系統(tǒng)或是同一個系統(tǒng)的不同主機之間共享了一個或一組資源,那么訪問這些資源時,需要通過一些互斥手段來防止彼此之間的干擾以保證一致性,在這種情況下,就需要使用分布式鎖了
    2023-01-01
  • Go并發(fā)編程之死鎖與活鎖的案例分析

    Go并發(fā)編程之死鎖與活鎖的案例分析

    死鎖就是在并發(fā)程序中,兩個或多個線程彼此等待對方完成操作,從而導(dǎo)致它們都被阻塞,并無限期地等待對方完成;活鎖就是程序一直在運行,但是無法取得進展。本文將從一些案例出發(fā),分析一下它們,希望對大家有所幫助
    2023-04-04
  • 一文帶你了解Go語言中鎖特性和實現(xiàn)

    一文帶你了解Go語言中鎖特性和實現(xiàn)

    Go語言中的sync包主要提供的對并發(fā)操作的支持,標志性的工具有cond(條件變量)?once?(原子性)?還有?鎖,本文會主要向大家介紹Go語言中鎖的特性和實現(xiàn),感興趣的可以了解下
    2024-03-03
  • GO中sync包自由控制并發(fā)示例詳解

    GO中sync包自由控制并發(fā)示例詳解

    這篇文章主要為大家介紹了GO中sync包自由控制并發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • go?doudou開發(fā)gRPC服務(wù)快速上手實現(xiàn)詳解

    go?doudou開發(fā)gRPC服務(wù)快速上手實現(xiàn)詳解

    這篇文章主要為大家介紹了go?doudou開發(fā)gRPC服務(wù)快速上手實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 談?wù)揋o 什么時候會觸發(fā) GC問題

    談?wù)揋o 什么時候會觸發(fā) GC問題

    Go 語言作為一門新語言,在早期經(jīng)常遭到唾棄的就是在垃圾回收(下稱:GC)機制中 STW(Stop-The-World)的時間過長。下面文章就對此話題展開,感興趣的小伙伴可以參考下面文章的內(nèi)容
    2021-09-09

最新評論

犍为县| 揭东县| 遂昌县| 临邑县| 吉林省| 绵阳市| 朝阳县| 安阳市| 拉孜县| 宁陕县| 新建县| 怀宁县| 嘉鱼县| 门源| 宜丰县| 辽宁省| 名山县| 彭水| 大名县| 固镇县| 大宁县| 竹溪县| 湖北省| 高密市| 明光市| 杭锦后旗| 南丰县| 汝州市| 南汇区| 长岭县| 乡宁县| 吉木萨尔县| 武城县| 临泉县| 定兴县| 鄯善县| 来宾市| 闽侯县| 双柏县| 长治县| 阳谷县|