Golang将结构分配给另一个结构字段不起作用
我正试图用Gorp去上所有的体育课。体育课有一个类类型,所以我运行第二个查询来检索它们。我收回了所有的课程类型,但由于某种原因,期末考试不起作用Golang将结构分配给另一个结构字段不起作用,go,Go,我正试图用Gorp去上所有的体育课。体育课有一个类类型,所以我运行第二个查询来检索它们。我收回了所有的课程类型,但由于某种原因,期末考试不起作用 package entities import ( "fmt" "github.com/coopernurse/gorp" "time" ) type Class struct { Id int ClassTypeId int ClassType
package entities
import (
"fmt"
"github.com/coopernurse/gorp"
"time"
)
type Class struct {
Id int
ClassTypeId int
ClassType ClassType
VideoPath string
VideoSize int
Duration float64
CreatedAt time.Time
VisibleAt time.Time
NoLongerVisibleAt time.Time
}
func LatestClasses(dbmap *gorp.DbMap) *[]Class {
var classes []Class
query := "SELECT * FROM Class"
_, err := dbmap.Select(&classes, query)
if err != nil {
panic(err)
}
for _, class := range classes {
classTypeForClass(dbmap, &class)
}
return &classes
}
func classTypeForClass(dbmap *gorp.DbMap, class *Class) {
var classType ClassType
query := "SELECT * FROM ClassType "
query += "WHERE Id=?"
err := dbmap.SelectOne(&classType, query, class.ClassTypeId)
if err != nil {
panic(err)
}
fmt.Println(classType) <<<<<<<<<<< Lists Yoga, Pilates etc.
class.ClassType = classType <<<<<<<< Seemingly does nothing
另一个更新 我将数据显示如下:
<h1>
Latest Classes
</h1>
<hr/>
{{ range .}}
{{.VideoPath}}
<br>
{{.ClassType.Name}}
<br>
{{.VideoSize}}
<br>
{{.Duration}}
<br>
{{.CreatedAt}}
{{.NoLongerVisibleAt}}
<br><br>
{{end}}
最新课程
{{range.}}
{{.VideoPath}
{{.ClassType.Name}
{{.VideoSize}
{{.Duration}
{{.CreatedAt}
{{.NOLONGERVIBLEAT}
{{end}
分配工作正常,但您没有将其分配给适当的对象:
在你的圈子里
对于u,类:=范围类{
classTypeForClass(dbmap和类)
}
class
是classes
切片中元素的副本。您的classTypeForClass(dbmap,&class)
正确地将类分配给该副本,并且该副本在循环体的末尾被丢弃
试试像这样的东西
for i := range classes {
classTypeForClass(dbmap, &(classes[i]))
}
或者更好:让classTypeForClass返回类,然后像这样分配它
for i := range classes {
classes[i].ClassType = classTypeForClass(dbmap, &(classes[i]))
}
(甚至可以将类作为值传递,而不是作为指针传递。)显示
类类型定义。我添加了类类型定义。为什么说赋值不起作用?如何验证?我添加了html代码段,您在哪里向模板传递类结构?
for i := range classes {
classes[i].ClassType = classTypeForClass(dbmap, &(classes[i]))
}