亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

GoFrame框架Scan類型轉換實例

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

前言

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

方法定義

// 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)

自動識別轉換Struct結構體

示例代碼

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)
}

運行結果

自動識別轉換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)
}

運行結果

自動識別轉換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)
}

運行結果

自動識別轉換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)
}

運行結果

總結

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

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

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

相關文章

  • 詳解Go 并發(fā)

    詳解Go 并發(fā)

    這篇文章主要介紹了Go 并發(fā)的相關資料,幫助大家更好的理解和學習go語言,感興趣的朋友可以了解下
    2020-09-09
  • Golang 如何解析和生成json

    Golang 如何解析和生成json

    這篇文章主要介紹了Golang 如何解析和生成json,幫助大家更好的理解和學習golang,感興趣的朋友可以了解下
    2020-09-09
  • Go框架三件套Gorm?Kitex?Hertz基本用法與常見API講解

    Go框架三件套Gorm?Kitex?Hertz基本用法與常見API講解

    這篇文章主要為大家介紹了Go框架三件套Gorm?Kitex?Hertz的基本用法與常見API講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-02-02
  • Go語言中的range用法實例分析

    Go語言中的range用法實例分析

    這篇文章主要介紹了Go語言中的range用法,實例分析了range的功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言map元素的刪除和清空

    Go語言map元素的刪除和清空

    本文主要介紹了Go語言map元素的刪除和清空,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)

    Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)

    這篇文章主要介紹了Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Go語言內(nèi)置包的使用

    Go語言內(nèi)置包的使用

    本文主要介紹了Go語言內(nèi)置包的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Go語言并發(fā)之context標準庫的使用詳解

    Go語言并發(fā)之context標準庫的使用詳解

    Context的出現(xiàn)是為了解決在大型應用程序中的并發(fā)環(huán)境下,協(xié)調(diào)和管理多個goroutine之間的通信、超時和取消操作的問題,本文就來和大家簡單聊聊它的具體用法,希望對大家有所幫助
    2023-06-06
  • Go語言使用Timeout Context取消任務的實現(xiàn)

    Go語言使用Timeout Context取消任務的實現(xiàn)

    本文主要介紹了Go語言使用Timeout Context取消任務的實現(xiàn),包括基本的任務取消和控制HTTP客戶端請求的超時,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 詳解go語言判斷管道是否關閉的常見誤區(qū)

    詳解go語言判斷管道是否關閉的常見誤區(qū)

    這篇文章主要想和大家一起探討一下在Go語言中,我們是否可以使用讀取管道時的第二個返回值來判斷管道是否關閉,文中的示例代碼講解詳細,有興趣的可以了解下
    2023-10-10

最新評論