第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Golang 的結構中迭代切片,或者是否可以在結構中使用 for 循環(huán)?

如何在 Golang 的結構中迭代切片,或者是否可以在結構中使用 for 循環(huán)?

Go
三國紛爭 2022-06-13 10:41:37
我有兩個結構。一種用于彩票,一種用于獎勵。我正在使用 Mysql 數(shù)據(jù)庫。我想從數(shù)據(jù)庫中讀取數(shù)據(jù)并以 JSON 格式寫入。我可以做到這一點,但我想要一個嵌套結構,我想在 Lottery 結構中迭代 Reward 結構。我可以這樣做嗎?這是我的彩票和獎勵結構type Lottery struct{    Id int `json:"lottery_id"`    Lottery string `json:"lottery_name"`    Description string `json:"lottery_description"`    Reward []Rew `json:"rewards"`}type Rew struct{    Id int `json:"reward_id"`    RewardName string `json:"reward_name"`    Description string `json:"reward_description"`    Asset int `json:"reward_asset"`    AssetName string `json:"reward_asset_name"`}這是我的代碼app.Get("/lottery/{id:int}", func (ctx iris.Context){        id1 := ctx.Params().GetIntDefault("id",0)        stmtOut, err := db.Prepare("select lottery_name, lottery_description from lottery_table where id = ?")        if err !=nil{            panic(err.Error())        }        defer stmtOut.Close()        var lottery_name, lottery_description string        err1 := stmtOut.QueryRow(id1).Scan(&lottery_name,&lottery_description)        if err != nil{            panic(err1.Error())        }        stmtOut1, err := db.Query("select id, reward_name, reward_description, reward_asset, reward_asset_name from rewards_table where lottery_id = ?",id1)        if err != nil{            panic(err.Error())        }        defer stmtOut1.Close()        for stmtOut1.Next() {            var id, reward_asset int            var reward_name, reward_description, reward_asset_name string            err2 := stmtOut1.Scan(&id, &reward_name, &reward_description, &reward_asset, &reward_asset_name)            if err2 != nil {                panic(err.Error())            }如何在結構中迭代?結構中是否可以有 for 循環(huán)?還是有任何其他方法可以讓我得到上面的 JSON?請幫我。
查看完整描述

1 回答

?
月關寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

像這樣的東西:


app.Get("/lottery/{id:int}", func(ctx iris.Context) {

    id1 := ctx.Params().GetIntDefault("id", 0)


    stmtOut, err := db.Prepare("select lottery_name, lottery_description from lottery_table where id = ?")

    if err != nil {

        panic(err.Error())

    }

    defer stmtOut.Close()


    lot := Lottery{Id: id1}

    err1 := stmtOut.QueryRow(id1).Scan(&lot.Lottery, &lot.Description)

    if err != nil {

        panic(err1.Error())

    }


    stmtOut1, err := db.Query("select id, reward_name, reward_description, reward_asset, reward_asset_name from rewards_table where lottery_id = ?", id1)

    if err != nil {

        panic(err.Error())

    }

    defer stmtOut1.Close()


    for stmtOut1.Next() {

        rew := Rew{}

        err2 := stmtOut1.Scan(&rew.Id, &rew.RewardName, &rew.Description, &rew.Asset, &rew.AssetName)

        if err2 != nil {

            panic(err.Error())

        }

        lot.Reward = append(lot.Reward, rew)


    }

    ctx.JSON(lot)

})


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號