Точный вывод определить нельзя: в фрагменте нет печати и не показана execute. Метка Swift ошибочна — конструкции go относятся к Go.
Что покажет вывод программы №24
Точный вывод определить нельзя: в фрагменте нет печати и не показана execute. Метка Swift ошибочна — конструкции go относятся к Go.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой текст появится в консоли после выполнения следующего кода:
func launch() {
go prepare()
go prepare()
go prepare()
startPrepare()
}
func startPrepare(){
}
func prepare(){
execute()
}
Ответ
Точный вывод определить нельзя: в фрагменте нет печати и не показана execute. Метка Swift ошибочна — конструкции go относятся к Go.
Если рассматривать этот текст как весь исходник, не определена execute и отсутствует полноценная точка входа, поэтому запускаемой программы нет. Если недостающие части существуют, launch создаёт три горутины prepare и синхронно вызывает пустую startPrepare.
Порядок выполнения трёх execute не гарантирован, а launch не ждёт их окончания. Для завершения работ перед выходом нужна синхронизация. Нельзя приписывать execute конкретный вывод или побочный эффект, не имея её реализации.