Перенесите объявление printNumber за пределы main и вызывайте её в обычном цикле. Синхронные вызовы уже обеспечивают порядок и секундную паузу.
Последовательный вывод чисел с односекундной паузой
Перенесите объявление printNumber за пределы main и вызывайте её в обычном цикле. Синхронные вызовы уже обеспечивают порядок и секундную паузу.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо изменить программу так, чтобы числа от 1 до 10 выводились одно за другим, с интервалом в одну секунду, используя функцию printNumber.
import (
"fmt"
"time"
)
func main () {
for counter:= 1; counter < 11; counter++ {
}
func printNumber(value int) {
time.Sleep(time.Second)
fmt.Println(value)
}
}
Ответ
Перенесите объявление printNumber за пределы main и вызывайте её в обычном цикле. Синхронные вызовы уже обеспечивают порядок и секундную паузу.
Исправленная структура:
func main() {
for counter := 1; counter <= 10; counter++ {
printNumber(counter)
}
}
func printNumber(value int) {
time.Sleep(time.Second)
fmt.Println(value)
}
Нужны импорты fmt и time. Именованную функцию нельзя объявить внутри другой таким синтаксисом. Первый вывод происходит после первой паузы, вся последовательность занимает примерно десять секунд плюс задержки выполнения.