← Все этапы
02 · ИНСТРУМЕНТЫУрок 05 из 1230 мин

Карты и поиск по ключу

Представляем словарь данных с быстрым доступом по ключу.

Когда значение ищут по имени

Карта связывает ключ со значением. В Go чтение возвращает также признак наличия, поэтому можно отличить отсутствующую запись от нулевого значения.

package main

import (
	"fmt"
	"sort"
)

func main() {
	zones := map[string]int{"Казань": 3, "Томск": 7}
	if offset, ok := zones["Казань"]; ok {
		fmt.Println("смещение:", offset)
	}
	zones["Пермь"] = 5
	cities := make([]string, 0, len(zones))
	for city := range zones {
		cities = append(cities, city)
	}
	sort.Strings(cities)
	for _, city := range cities {
		fmt.Println(city, zones[city])
	}
}

Порядок обхода map не определён. Для стабильного отчёта соберите ключи отдельно и отсортируйте их. Проверка value, ok := m[key] отличает отсутствующую запись от нулевого значения.

Практика

Попробуйте сами

В main.go создайте map Казань: 3, Томск: 7. Выведите смещение Казани, отдельно сообщите, что города Пермь пока нет, затем добавьте Пермь: 5. Отсортируйте названия и выведите пары город/смещение. Запустите go run main.go.

Проверка результата

Как понять, что получилось

Поиск печатает Казань: 3, отсутствие Перми обрабатывается без вывода нулевого смещения как найденного, а итоговый список идёт в порядке Казань, Пермь, Томск со значениями 3, 5, 7.

Карты и поиск по ключу | Go | WebSchool · Go