Go-Pakettests liefern häufig Hinweise darauf, wie Dinge zu tun sind. Zum Beispiel von database/sql/sql_test.go
,
func TestQuery(t *testing.T) {
rows, err := db.Query("SELECT|people|age,name|")
if err != nil {
t.Fatalf("Query: %v", err)
}
type row struct {
age int
name string
}
got := []row{}
for rows.Next() {
var r row
err = rows.Scan(&r.age, &r.name)
if err != nil {
t.Fatalf("Scan: %v", err)
}
got = append(got, r)
}
}
func TestQueryRow(t *testing.T) {
var name string
var age int
var birthday time.Time
err := db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&age)
}
Was für Ihre Frage, wenn Sie eine Zeile in eine Struktur abfragen, zu etwas führen würde wie:
var row struct {
age int
name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
Ich weiß, dass dies Ihrer Lösung ähnlich sieht, aber es ist wichtig zu zeigen, wie Sie eine Lösung finden.