Я пытаюсь создать приложение таймера, которое для сохранения сохраняет target-t.Time в двоичном файле, я смог разобрать маршалинг, но немаршалинг доставляет мне небольшую проблему
I ' Я могу правильно прочитать 15-битные чанки для каждого time.Time
, но когда я пытаюсь разобрать их, функция, похоже, ссылается на одно и то же значение в каждой итерации. Когда я печатаю buf
в l oop, появляются правильные битовые значения, но когда я распечатываю немаршированные значения, это только первые time.Time
.
Может кто-нибудь подсказать, что Я делаю не так? вот код для моей readFile
функции:
func readDat() []time.Time {
f, err := ioutil.ReadFile("dat")
check(err)
var targets []time.Time
var buf = make([]byte, 15)
var bufT time.Time
for i, o := 0, 0; o < len(f); i++ {
buf = f[o : o+15]
bufT.UnmarshalBinary(buf) // pointer? bits in buf sind korrekt
targets = append(targets, bufT)
o = o + 16
}
return targets
}