Я знаю, Go может возвращать несколько значений из одной функции / метода, но я не могу понять, ГДЕ значения возвращаются из.
ok, err := DB.SelectWithWhere(d, goqu.Ex{
"location": id,
}).Limit(1).ScanStruct(d)
SelectWithWhere
возвращает только одно значение.
func (s *SqlDB) SelectWithWhere(m models.Model, e goqu.Expression, args ...interface{}) *goqu.SelectDataset {
ds := s.goqu.From(m.Table()).Where(e)
if len(args) > 0 {
ds = ds.Select(args...)
}
return ds //Single Return
}
Возвращается ложное значение ok
, и это неправильно, поскольку он находит результат из базы данных, значения хранятся в структуре d
.
Кто-нибудь может сказать мне, почему ok
возвращается как ложное и ГДЕ происходит второе возвращаемое значение?
Я нашел:
ScanStruct
Сканирует строку в фрагмент структуры, возвращает false, если строка не найдена
Можно ли вернуть 1 значение из функции SelectWithWhere
, а другое из ScanStruct
?