为了账号安全,请及时绑定邮箱和手机立即绑定

golang 绑定数组并一一输入

golang 绑定数组并一一输入

Go
子衿沉夜 2023-02-06 11:21:29
我正在尝试绑定数组类型并将数组中包含的值一一放入我尝试了循环但有 json 返回,所以只存储了 1像这样log_id|tag_id|------+------+1     |     1|http正文{    "LogId" : 1    "tags" : [1,2,3,4,5,6,7,8,9]}    var binder struct {        LogId      uuid.UUID           `json:"logId"`        TagId      []int32             `json:"tags"`    }    json.Unmarshal([]byte(c.Request().Body), &binder)    err := h.UseCases.CreateReviewLogUseCase.Use(c.Ctx(),        database.ReviewLogDenyTag{            LogID: binder.LogId,            TagID: binder.TagId,        })    return c.JSON(http.StatusCreated, map[string]string{        "message": "success",    })如何执行这样log_id|tag_id|------+------+1     |     1|1     |     2|1     |     3|1     |     4|1     |     5|1     |     6|1     |     7|1     |     8|1     |     9|谢谢
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

看起来你的问题是你实际上并没有遍历你的标签列表。市面上的每种编程语言都有一种语法允许您执行此操作,通常称为 for 循环。在 Go 中,for 循环有几个有效的语法:for {starting}; {ending}; {update} {}就像在 C 中一样,或者for {index}, {value} := range {collection} {}. 第一种语法虽然可用,但对于您的用例来说并不是最好的,因此我们将使用第二种语法。应用它给出:


for _, tag := range binder.TagId {

    err := h.UseCases.CreateReviewLogUseCase.Use(c.Ctx(),

        database.ReviewLogDenyTag{

            LogID: binder.LogId,

            TagID: tag,

        })

}

这是在迭代 中的每个条目binder.TagId,这是一个整数片段,并提取每个条目的值和索引。在此示例中,我们丢弃不需要的索引并直接使用该值。


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信