Тести пакету Go часто дають підказки щодо способів робити щось. Наприклад, від 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)
}
Що для вашого запитання, запитуючи рядок у структуру, означало б щось на зразок:
var row struct {
age int
name string
}
err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
Я знаю, що це схоже на ваше рішення, але важливо показати, як знайти рішення.