Эти два кодовых блока почти идентичны, ожидаемые структуры данных должны быть одинаковыми.
slabels
- это карта отсортированных значений даты и времени на ключах docker -tag. ind
- это значение последовательного индекса, которое будет использоваться позже. dtags
это карта, которая составляется здесь. properties
- это карта составляемых карт.
Пример A
def dtags = [:];
slabels.each {
ind ++
dtags << ['lastModified': it.value]
dtags << ['seq': ind]
println it.key + ": " + dtags
properties.put("$it.key", dtags)
}
println properties
Result: println it.key + ": " + dtags
1.30: [lastModified:2020-02-12T10:31:19.107+0000, seq:1]
1.29: [lastModified:2020-02-11T15:44:49.658+0000, seq:2]
1.28: [lastModified:2020-02-10T09:22:49.010+0000, seq:3]
Result: println properties
[1.30:[lastModified:2019-12-10T17:14:10.672+0000, seq:22],
1.29:[lastModified:2019-12-10T17:14:10.672+0000, seq:22],
1.28:[lastModified:2019-12-10T17:14:10.672+0000, seq:22]]
Здесь properties."$it.key" = dtags
дает тот же результат.
Пример B
def dtags = [:];
slabels.each {
ind ++
dtags << ['lastModified': it.value]
dtags << ['seq': ind]
println it.key + ": " + dtags
properties."$it.key" = ['lastModified': it.value, 'seq': ind]
}
println properties
Result: println it.key + ": " + dtags
1.30: [lastModified:2020-02-12T10:31:19.107+0000, seq:1]
1.29: [lastModified:2020-02-11T15:44:49.658+0000, seq:2]
1.28: [lastModified:2020-02-10T09:22:49.010+0000, seq:3]
Result: println properties
[1.30:[lastModified:2020-02-12T10:31:19.107+0000, seq:1],
1.29:[lastModified:2020-02-11T15:44:49.658+0000, seq:2],
1.28:[lastModified:2020-02-10T09:22:49.010+0000, seq:3]]
Обратите внимание, что результаты println it.key + ": " + dtags
совпадают, но println properties
отличаются. Для ясности желаемым результатом является пример B.
Если я определю dtags
внутри l oop, то это решит проблему и даже может быть подсказкой.
Однако в пример A, dtags
, кажется, используется дважды в одной и той же области видимости, что дает разные результаты. Короткий вопрос, что мне не хватает?
Заранее спасибо