Итерация по картам
Часть раздела Основы путешествия по GO на Coddy — урок 92 из 109.
Ключевое слово range позволяет перебирать все пары ключ-значение в карте. Оно возвращает как ключ, так и значение для каждой записи.
Создайте карту запасов фруктов:
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Результат показывает каждую пару ключ-значение:
apples: 5
bananas: 8
oranges: 12Если вам нужны только ключи, вы можете опустить вторую переменную:
for fruit := range inventory {
fmt.Println(fruit)
}Задание
НовичокВ этом испытании вы попрактикуетесь в итерации по карте (map) с использованием ключевого слова range в Go. Для вас была создана карта оценок студентов. Ваша задача — перебрать карту и вывести имя каждого студента и его оценку.
Дополните код, чтобы перебрать карту studentGrades и вывести имя и оценку каждого студента в формате: Student: [name], Grade: [grade]
Шпаргалка
Используйте range для итерации по парам ключ-значение в карте (map):
inventory := map[string]int{
"apples": 5,
"bananas": 8,
"oranges": 12,
}
for fruit, quantity := range inventory {
fmt.Printf("%s: %d\n", fruit, quantity)
}Чтобы итерировать только по ключам, опустите вторую переменную:
for fruit := range inventory {
fmt.Println(fruit)
}Попробуйте сами
package main
import (
"fmt"
"sort"
)
func main() {
// Карта оценок студентов
studentGrades := map[string]string{
"Alice": "A",
"Bob": "B",
"Charlie": "B+",
"David": "A-",
"Eva": "C",
}
// Собираем имена студентов (ключи) в срез, чтобы отсортировать их
var names []string
for name := range studentGrades {
names = append(names, name)
}
sort.Strings(names)
// TODO: Пройтись по отсортированному списку имен студентов
// и вывести имя и оценку каждого студента в формате:
// "Student: [name], Grade: [grade]"
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений