Достаточно последовательного цикла от 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 пришлось бы специально удерживать до завершения работников.