Sobes.tech
Junior — Middle

Карта контейнеринде ачкыч катары кайсы маалымат түрлөрү кызмат кылышы мүмкүн?

sobes.tech AI

AIден жооп

Goда, картада ачкыч тек салыштырмалуу (comparable) маалымат түрлөрү болушу мүмкүн. Бул ачкыч үчүн == оператору аныкталышы керек дегенди билдирет.

Туура ачкыч түрлөрү:

  • Логикалык маанилер (bool)
  • Сандык түрлөр (int, float64, uint8 жана башка)
  • Жолдор (string)
  • Байттар
  • Каналдар
  • Интерфейстер, эгер динамикалык түр салыштырмалуу болсо
  • Структуралар, эгер бардык талаалары салыштырмалуу болсо

Ачкыч катары колдонууга болбойт:

  • Слайстер (slice)
  • Хариталар (map)
  • Функциялар

Мисал:

m := make(map[string]int)
m["key"] = 42

// Салыштырмалуу талаалары бар структура
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Нүктө"

Эгер салыштырмалуу эмес типти ачкыч катары колдонууга аракет кылсаңыз, компилятор ката чыгарат.