Последовательный вывод чисел с односекундной паузой

Перенесите объявление 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. Именованную функцию нельзя объявить внутри другой таким синтаксисом. Первый вывод происходит после первой паузы, вся последовательность занимает примерно десять секунд плюс задержки выполнения.

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

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

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

Подробнее