新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame對(duì)象信息-gstructs
基本介紹
?gstructs?組件用于方便獲取結(jié)構(gòu)體的相關(guān)信息。

創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),外鏈,1元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
這是一個(gè)偏底層組件,一般業(yè)務(wù)上很少會(huì)用到,在框架、基礎(chǔ)庫、中間件編寫中用到。
使用方式:
import "github.com/GOgf/gf/v2/os/gstructs"接口文檔:
https://pkg.go.dev/github.com/gogf/gf/v2/os/gstructs
常用方法
Fields
- 說明:?
Fields?將輸入?yún)?shù)?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
- 說明:?
TagMapName?從參數(shù)?pointer?中檢索?tag?,并以?map[string]string?的形式返回。 - 注意:
- 參數(shù)?
pointer?的類型應(yīng)該是 ?struct/*struct?。 - 只會(huì)返回可導(dǎo)出的字段(首字母大寫的字段)。
- 格式:
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",
} 文章名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame對(duì)象信息-gstructs
URL分享:http://m.fisionsoft.com.cn/article/cdeeoij.html


咨詢
建站咨詢
