gpt4 book ai didi

go - 在 Golang 中将 Slice 附加到结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:11 28 4
gpt4 key购买 nike

我正在尝试将一个数组附加到另​​一个数组(或 slice 到结构?)一个查询(目标)的结果根据先前的查询 result.id 迭代并附加另一个查询(每个检查点的目标)的结果

然后在模板中迭代结果。

型号

type Target struct {
ID uint32 `db:"id"`
CriteriaID string `db:"criteria_id"`
TargetCheck []*TargetCheck
}

type TargetCheck struct {
ID uint32 `db:"id"`
TargetID string `db:"target_id"`
CheckpointID template.HTML `db:"checkpoint_id"`
Name string `db:"name"`
}

func TargetByCriteriaID(criteriaID string) ([]Target, error) {
... <return rows>
}

func CheckpointByTargetID(targetID uint32) ([]TargetCheck, error) {
... <return rows>
}

func (target *Target) AddItem(TargetCheckItem *TargetCheck) []*TargetCheck {
target.TargetCheck = append(target.TargetCheck, TargetCheckItem)
return target.TargetCheck
}

Controller

func CriteriaBrowseGET(w http.ResponseWriter, r *http.Request) {

criteriaID := 5
target, err := model.TargetByCriteriaID(criteriaID)
for i := range target {
targetCheck, err := model.CheckpointByTargetID(target[i].ID)
target = model.Target.AddItem(targetCheck)
}

v := view.New(r)
v.Name = "criteria/browse"
v.Vars["target"] = target
v.Render(w)

}

查看

{{range $index, $content := .target}}
<p>Target: {{.ID}}</p>
{{if .}}
{{range .TargetCheck}}
<p>{{.CheckpointID}}</p>
<p>{{.Name}}</p>
{{end}}
{{end}}

{{end}}

当执行 go build 时,它说:

vendor\app\controller\criteria.go:74:24: invalid method expression model.Target.AddItem (needs pointer receiver: (*model.Target).AddItem)

vendor\app\controller\criteria.go:74:24: model.Target.AddItem undefined (type model.Target has no method AddItem)

上面的代码有没有问题?

最佳答案

target = model.Target.AddItem(targetCheck) 是错误的,您应该在从 范围获得的 target 值上调用方法 语句也是 &target.AddItem(targetCheck) 而不是

关于go - 在 Golang 中将 Slice 附加到结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436818/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com