Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: Go, range, map iteration, syntax

Чем for k, v := range m отличается от for k := range m?

Вопрос проверяет понимание синтаксиса итерации по map в Go, а именно различие между получением ключа и значения и получением только ключа.

Короткий ответ

В Go, `for k, v := range m` итерирует по map, присваивая переменной `k` ключ, а `v` — значение. `for k := range m` итерирует только по ключам, не выделяя память под значение. Второй вариант эффективнее, если вам нужны только ключи.

Длинный ответ

Различие между итерацией с получением значения и без

В Go оператор `range` при итерации по map может возвращать один или два значения. Первый вариант `for k, v := range m` возвращает и ключ, и значение. Второй вариант `for k := range m` возвращает только ключ. Это синтаксическое различие важно для производительности и читаемости кода.

Примеры кода

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2, "c": 3}

    // Итерация с ключом и значением
    for k, v := range m {
        fmt.Printf("key=%s, value=%d\n", k, v)
    }

    // Итерация только с ключом
    for k := range m {
        fmt.Printf("key=%s\n", k)
    }
}

Когда использовать каждый вариант

  • for k, v := range m — когда вам нужно и ключ, и значение для обработки.
  • for k := range m — когда вам нужны только ключи, например, для удаления элементов или проверки существования.

Использование второго варианта, когда значение не нужно, позволяет избежать лишнего копирования и улучшает производительность, особенно для больших map.

Вывод

Выбор между этими двумя формами зависит от задачи: если значение не требуется, используйте итерацию только по ключам для повышения эффективности и ясности кода.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • Golang

    Golang

Ключевые слова

#Go

#range

#map iteration

#syntax

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.