У меня есть функция, которая принимает срез значений и полей как набор необязательных параметров, и функция отображает каждое значение в поле и возвращает ошибку, если таковая имеется, вызывающей стороне, как показано ниже
func Unmarshall(source []interface{}, dest ...interface{}) error {
if len(source) != len(dest) {
return errors.New("source and destination doesn't match")
}
for i, s := range source {
dest[i] = s
}
return nil
}
иниже код, который я имею для вызывающего абонента
for _, r := range rows.Values {
item := entity.Item{}
e :=Unmarshall(r,
&item.Name,
&item.Description,
&item.AddedUTCDatetime,
&item.ModifiedUTCDatetime)
if e == nil {
items = append(items, item)
}
}
Но проблема с вышеупомянутым - item.Name,item.Description, &item.AddedUTCDatetime, &item.ModifiedUTCDatetime
не сохраняет значения, установленные в Unmarshall func
, даже если я передал указатель на поля.
Что-то не так с кодом выше?