日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

php小編草莓為您介紹如何訪問結(jié)構(gòu)體的指針切片字段內(nèi)的嵌入結(jié)構(gòu)體。在Go語言中,我們可以使用指針切片來存儲(chǔ)結(jié)構(gòu)體數(shù)據(jù),并且在結(jié)構(gòu)體中嵌入其他結(jié)構(gòu)體作為字段。然而,訪問嵌入結(jié)構(gòu)體字段需要一些特殊的操作。本文將詳細(xì)解釋如何通過指針切片來訪問這些嵌入結(jié)構(gòu)體字段,幫助您更好地理解和應(yīng)用這一特性。無論您是初學(xué)者還是有經(jīng)驗(yàn)的Go開發(fā)者,本文都將為您提供實(shí)用的技巧和示例代碼,助您輕松掌握這一知識(shí)點(diǎn)。

問題內(nèi)容

我想添加功能以在數(shù)據(jù)為 []*struct 時(shí)獲取第一個(gè)元素。

func getencfields(t reflect.type, list map[string]int) {
    for t.kind() == reflect.ptr {
        t = t.elem()
    }
    if t.kind() == reflect.struct {
        for i := 0; i < t.numfield(); i++ {
            field := t.field(i)
            tag := field.tag.get("bson")
            if containstag(tag, "encr") {
                list[getfieldname(field, tag)]++
            }
            getencfields(field.type, list)
        }
    }

登錄后復(fù)制

在此代碼中,當(dāng)數(shù)據(jù)為 []*struct 時(shí),我需要添加功能。這是要在此函數(shù)中傳遞的結(jié)構(gòu)類型。

type Customer struct {
    Name     string    `json:"name" bson:"name"`
    Acnumber int64     `json:"acnumber" bson:"acnumber,encr"`
    Number   int64     `json:"number" bson:"number,encr"`
    Address  []*Address `json:"address" bson:"address"`
}
type Address struct {
    Mail string `json:"mail" bson:"mail,encr"`
}

登錄后復(fù)制

感謝您的支持

解決方法

像處理指針一樣向下鉆取數(shù)組、切片和映射。

func getEncFields(t reflect.Type, list map[string]int) {
    for t.Kind() == reflect.Ptr || t.Kind() == reflect.Slice || t.Kind() == reflect.Array || t.Kind() == reflect.Map {
        t = t.Elem()
    }
    if t.Kind() == reflect.Struct {
        for i := 0; i < t.NumField(); i++ {
            field := t.Field(i)
            tag := field.Tag.Get("bson")
            if containsTag(tag, "encr") {
                list[getFieldName(field, tag)]++
            }
            getEncFields(field.Type, list)
        }
    }
}

登錄后復(fù)制

https://www.php.cn/link/b4572f47b7c69e27b8e46646d9579e67 p>

分享到:
標(biāo)簽:Go語言
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定