VladimirAndreev
@VladimirAndreev
php web dev

Как правильно заполнить карту структур?

Дан срез из трех ключей - "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)
}

  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы