Дан срез из трех ключей - "a", "b", "c", которые встречаются в срезе произвольное число раз в произвольном порядке, условно, []string{"a","c","b","b"}
Необходимо заполнить карту структур,
type Content { A int, B int, C int}
По следующему принципу:
1. ключом карты будет ключ из среза.
2. если ключ a - надо заполнить A и B, если b - B и C, если c - A и C.
3. заполняется произведением из {a = 1, b = 2, c = 3} * на множитель, который образуется от числовой ключ из среза, к которому прибавляется 1 до тех пор, пока он не станет кратным 2 или 3.
У меня так получилось, нормалёк?:-)
кодpackage main
import (
"fmt"
)
type Content struct {
A int
B int
C int
}
func main() {
items := make(map[string]Content)
for j, key := range []string{"a", "b", "c", "c", "b", "a", "b", "a", "c", "b", "c", "a"} {
item := items[key]
i := j
for {
i += 1
if 0 == i%2 || 0 == i%3 {
break
}
}
switch key {
case "a":
item.A += 1 * i
item.B += 2 * i
break
case "b":
item.B += 2 * i
item.C += 3 * i
break
case "c":
item.A += 1 * i
item.C += 3 * i
break
}
items[key] = item
}
fmt.Println(items)
}