Последовательный вывод чисел от 0 до 10

Представленный код уже решает задачу: синхронные вызовы printNumber печатают 0, 1, …, 10 по порядку, каждое число на отдельной строке.

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

Что ответить на собеседовании

Представленный код уже решает задачу: синхронные вызовы printNumber печатают 0, 1, …, 10 по порядку, каждое число на отдельной строке.

Подробный разбор

Ответ с пояснениями

Условие

Не меняя внутреннюю логику функции printNumber, реализуйте программу, которая последовательно выводит все целые числа от 0 до 10 включительно, учитывая встроенную паузу в одну секунду.

package main

import (
    "fmt"
    "time"
)

func main() {
    for i := 0; i <= 10; i++ {
        printNumber(i)
    }
}

func printNumber(num int) {
    time.Sleep(time.Second)
    fmt.Println(num)
}

Ответ

Представленный код уже решает задачу: синхронные вызовы printNumber печатают 0, 1, …, 10 по порядку, каждое число на отдельной строке.

Каждый вызов сначала ждёт примерно секунду и только потом выводит число, поэтому вся последовательность занимает не менее примерно 11 секунд, плюс накладные задержки. Горутины здесь не нужны. Если добавить go перед вызовом, порядок перестанет быть гарантирован, а main без ожидания может завершиться раньше печати.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее