У меня есть карта, которая определяется как:
mapMeasures := make(map[time.Time]models.Measure, 0)
с
type Measure struct {
Delta float64 // I just let one field to simplificate
}
Таким образом, начальная l oop будет заполнять значения от 22/01/20-10:10:00
до 22/01/20-12:00:00
, поэтому он будет хранить значение 12 ключей (10-минутный шаг)
Затем он снова будет l oop этих временных меток и добавит дельту к существующему значению.
Итак, мне нужно проверить, ключ, соответствующий моей фактической отметке времени, уже существует:
if val, ok := mapMeasures[ts]; ok { // ts already exists, we must sum delta values
measure.Delta += val.Delta
}
Но, похоже, это условие никогда не выполняется.
Я отладил код и вижу, что отметка времени действительно присутствует внутри map:
mapMeasures = {map[time.Time]gitlab.com/company/common/models.Measure}
0 = ->
key = {time.Time} 2020-01-22 11:40:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132460}
1 = ->
key = {time.Time} 2020-01-22 12:30:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132780}
2 = ->
key = {time.Time} 2020-01-22 12:50:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc0001328c0}
3 = ->
key = {time.Time} 2020-01-22 11:00:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132140}
4 = ->
key = {time.Time} 2020-01-22 11:10:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132280}
5 = ->
key = {time.Time} 2020-01-22 11:20:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132320}
6 = ->
key = {time.Time} 2020-01-22 11:30:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc0001323c0}
7 = ->
key = {time.Time} 2020-01-22 11:50:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132500}
8 = ->
key = {time.Time} 2020-01-22 12:00:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc0001325a0}
9 = ->
key = {time.Time} 2020-01-22 12:10:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132640}
10 = ->
key = {time.Time} 2020-01-22 12:20:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc0001326e0}
11 = ->
key = {time.Time} 2020-01-22 12:40:00 +0100
value = {*gitlab.com/company/common/models.Measure | 0xc000132820}
Actual ts
:
{time.Time} 2020-01-22 11:00:00 +0100
Есть ли какие-либо проблемы с ключом, который будет меткой времени? Должен ли я преобразовать его в строку, или Int ???