Отложенный вывод чисел с помощью блокирующей функции

Достаточно последовательного цикла от 1 до 10 с вызовом printNumber(i). Числа будут появляться в порядке возрастания примерно раз в секунду.

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

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

Достаточно последовательного цикла от 1 до 10 с вызовом printNumber(i). Числа будут появляться в порядке возрастания примерно раз в секунду.

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

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

Условие

Необходимо вывести числа от 1 до 10, используя готовую функцию printNumber(n int), которая:

  • выводит переданное ей число;
  • перед печатью делает паузу time.Sleep(time.Second).
package main
        
import (
        "fmt"
        "time"
        )   

func main() {
    
}

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

Ответ

Достаточно последовательного цикла от 1 до 10 с вызовом printNumber(i). Числа будут появляться в порядке возрастания примерно раз в секунду.

Добавьте в main:

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

Готовая printNumber уже выполняет задержку перед каждой печатью, поэтому дополнительный Sleep не нужен. Общее время — не меньше примерно десяти секунд плюс накладные расходы. Параллельные go-вызовы дали бы другой сценарий: вывод приблизительно одновременно и без установленного порядка, а main пришлось бы специально удерживать до завершения работников.

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

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

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

Подробнее