Приложение получает адрес переменной d
, а не адрес элемента слайса. Переменная d
находится вне цикла и имеет одинаковый адрес на каждой итерации цикла.
код
tmp := d.LogTime
t1 = &tmp
работает, потому что tmp
находится внутри цикла.
Возможно, вы намеревались взять адрес элемента слайса. Если это так, используйте этот код:
for i:= range entries {
if d.EntryType == print {
t1 = &entries[i].LogTime
}
if d.EntryType == saw {
t2 = &entries[i].LogTime
}
}
Здесь может быть причина использовать значения *time.Time
, но обычно приложения работают с time.Time
. Этот код может делать то, что вам нужно:
var t1, t2 time.Time
for _, d := range entries {
if d.EntryType == print {
t1 = d.LogTime
}
if d.EntryType == saw {
t2 = d.LogTime
}
}