GO Go  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Условия, циклы и switch

Разбирает ветвления, единственную форму цикла `for`, разные виды `switch` и управление выполнением на небольших, но неочевидных фрагментах. В тесте 20 вопросов, из них 12 требуют чтения кода, команд или диагностических фрагментов. Задания опираются на устойчивые правила современного Go; если поведение зависит от версии, это оговорено в самом вопросе.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 4 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 20
В рабочем примере по теме «Условие if» важно отделить гарантию от догадки. К какому результату приводит показанная конструкция?
GoУсловие if: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    if n := len("go"); n > 0 {
        fmt.Println("есть:", n)
    } else {
        fmt.Println("пусто")
    }
}
Вопрос 2 из 20
Фрагмент относится к теме «Условие if». Какую правку стоит предложить на ревью, сохранив назначение кода?
GoУсловие if: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    if n := len("go"); n > 0 {
        fmt.Println("есть:", n)
    } else {
        fmt.Println("пусто")
    }
}
Вопрос 3 из 20
На ревью разбирают тему «Условие if». На какой контракт языка или стандартной библиотеки здесь нужно опереться?
GoУсловие if: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    if n := len("go"); n > 0 {
        fmt.Println("есть:", n)
    } else {
        fmt.Println("пусто")
    }
}
Вопрос 4 из 20
В разделе «Условие if» показан конкретный случай. Какое ограничение опаснее всего пропустить?
Вопрос 5 из 20
Команда проверяет решение по теме «Условие if». Какой вывод о сопровождении решения наиболее взвешенный?
Вопрос 6 из 20
Фрагмент относится к теме «Цикл for». Как завершится показанный фрагмент при указанных входных данных?
GoЦикл for: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    for i := 0; ; i++ {
        if i == 3 { break }
        fmt.Print(i, " ")
    }
}
Вопрос 7 из 20
На ревью разбирают тему «Цикл for». Что здесь следует изменить прежде всего?
GoЦикл for: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    for i := 0; ; i++ {
        if i == 3 { break }
        fmt.Print(i, " ")
    }
}
Вопрос 8 из 20
В разделе «Цикл for» показан конкретный случай. Какое правило отделяет верный разбор от правдоподобной догадки?
GoЦикл for: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    for i := 0; ; i++ {
        if i == 3 { break }
        fmt.Print(i, " ")
    }
}
Вопрос 9 из 20
Команда проверяет решение по теме «Цикл for». Какой крайний случай обязан попасть в тесты?
Вопрос 10 из 20
Перед публикацией кода по теме «Цикл for» нужно уточнить контракт. Какой выбор лучше отражает баланс простоты и контроля?
Вопрос 11 из 20
На ревью разбирают тему «Ветвление switch». Как изменится состояние программы после этого фрагмента?
GoВетвление switch: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    n := 2
    switch n {
    case 1, 2:
        fmt.Println("small")
    case 3:
        fmt.Println("three")
    }
}
Вопрос 12 из 20
В разделе «Ветвление switch» показан конкретный случай. Какое замечание на ревью будет наиболее точным?
GoВетвление switch: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    n := 2
    switch n {
    case 1, 2:
        fmt.Println("small")
    case 3:
        fmt.Println("three")
    }
}
Вопрос 13 из 20
Команда проверяет решение по теме «Ветвление switch». Какое правило важнее случайных деталей конкретного запуска?
GoВетвление switch: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    n := 2
    switch n {
    case 1, 2:
        fmt.Println("small")
    case 3:
        fmt.Println("three")
    }
}
Вопрос 14 из 20
Перед публикацией кода по теме «Ветвление switch» нужно уточнить контракт. Где корректный фрагмент легко становится ошибочным?
Вопрос 15 из 20
В рабочем примере по теме «Ветвление switch» важно отделить гарантию от догадки. Что учитывать при выборе этого приёма для публичного API?
Вопрос 16 из 20
В разделе «Управление выполнением» показан конкретный случай. Какой результат даст этот код на поддерживаемой реализации Go?
GoУправление выполнением: результат выполнения
// Фрагмент для трассировки.
package main
func main() {
outer:
    for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if i == 1 && j == 1 { break outer }
        }
    }
}
Вопрос 17 из 20
Команда проверяет решение по теме «Управление выполнением». Что нужно поменять, чтобы граничный случай не превратился в сбой?
GoУправление выполнением: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main() {
outer:
    for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if i == 1 && j == 1 { break outer }
        }
    }
}
Вопрос 18 из 20
Перед публикацией кода по теме «Управление выполнением» нужно уточнить контракт. Какое свойство конструкции определяет её поведение?
GoУправление выполнением: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main() {
outer:
    for i := 0; i < 3; i++ {
        for j := 0; j < 3; j++ {
            if i == 1 && j == 1 { break outer }
        }
    }
}
Вопрос 19 из 20
В рабочем примере по теме «Управление выполнением» важно отделить гарантию от догадки. Что стоит проверить до переноса решения в общий компонент?
Вопрос 20 из 20
Фрагмент относится к теме «Управление выполнением». Как точнее всего описать пользу и цену этого решения?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу