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

Типы, переменные и константы Go

Проверяет типы, нулевые значения, короткие объявления, константы и явные преобразования без вопросов на механическое запоминание терминов. В тесте 20 вопросов, из них 12 требуют чтения кода, команд или диагностических фрагментов. Задания опираются на устойчивые правила современного Go; если поведение зависит от версии, это оговорено в самом вопросе.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 4 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 20
В рабочем примере по теме «Базовые типы» важно отделить гарантию от догадки. К какому результату приводит показанная конструкция?
GoБазовые типы: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    var n int
    var ok bool
    var s string
    fmt.Printf("%d %t %q", n, ok, s)
}
Вопрос 2 из 20
Фрагмент относится к теме «Базовые типы». Какую правку стоит предложить на ревью, сохранив назначение кода?
GoБазовые типы: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    var n int
    var ok bool
    var s string
    fmt.Printf("%d %t %q", n, ok, s)
}
Вопрос 3 из 20
На ревью разбирают тему «Базовые типы». На какой контракт языка или стандартной библиотеки здесь нужно опереться?
GoБазовые типы: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    var n int
    var ok bool
    var s string
    fmt.Printf("%d %t %q", n, ok, s)
}
Вопрос 4 из 20
В разделе «Базовые типы» показан конкретный случай. Какое ограничение опаснее всего пропустить?
Вопрос 5 из 20
Команда проверяет решение по теме «Базовые типы». Какой вывод о сопровождении решения наиболее взвешенный?
Вопрос 6 из 20
Фрагмент относится к теме «Короткое объявление». Как завершится показанный фрагмент при указанных входных данных?
GoКороткое объявление: результат выполнения
// Фрагмент для трассировки.
package main
func read() (int, error) { return 3, nil }
func main() {
    var err error
    n, err := read()
    _, _ = n, err
}
Вопрос 7 из 20
На ревью разбирают тему «Короткое объявление». Что здесь следует изменить прежде всего?
GoКороткое объявление: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func read() (int, error) { return 3, nil }
func main() {
    var err error
    n, err := read()
    _, _ = n, err
}
Вопрос 8 из 20
В разделе «Короткое объявление» показан конкретный случай. Какое правило отделяет верный разбор от правдоподобной догадки?
GoКороткое объявление: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func read() (int, error) { return 3, nil }
func main() {
    var err error
    n, err := read()
    _, _ = n, err
}
Вопрос 9 из 20
Команда проверяет решение по теме «Короткое объявление». Какой крайний случай обязан попасть в тесты?
Вопрос 10 из 20
Перед публикацией кода по теме «Короткое объявление» нужно уточнить контракт. Какой выбор лучше отражает баланс простоты и контроля?
Вопрос 11 из 20
На ревью разбирают тему «Константы». Как изменится состояние программы после этого фрагмента?
GoКонстанты: результат выполнения
// Фрагмент для трассировки.
package main
const x = 1 << 40
var a int64 = x
// var b int32 = x
func main() { _ = a }
Вопрос 12 из 20
В разделе «Константы» показан конкретный случай. Какое замечание на ревью будет наиболее точным?
GoКонстанты: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
const x = 1 << 40
var a int64 = x
// var b int32 = x
func main() { _ = a }
Вопрос 13 из 20
Команда проверяет решение по теме «Константы». Какое правило важнее случайных деталей конкретного запуска?
GoКонстанты: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
const x = 1 << 40
var a int64 = x
// var b int32 = x
func main() { _ = a }
Вопрос 14 из 20
Перед публикацией кода по теме «Константы» нужно уточнить контракт. Где корректный фрагмент легко становится ошибочным?
Вопрос 15 из 20
В рабочем примере по теме «Константы» важно отделить гарантию от догадки. Что учитывать при выборе этого приёма для публичного API?
Вопрос 16 из 20
В разделе «Преобразования» показан конкретный случай. Какой результат даст этот код на поддерживаемой реализации Go?
GoПреобразования: результат выполнения
// Фрагмент для трассировки.
package main
type Meters int
func main() {
    var d Meters = 5
    var extra int = 2
    // _ = d + extra
    _ = d + Meters(extra)
}
Вопрос 17 из 20
Команда проверяет решение по теме «Преобразования». Что нужно поменять, чтобы граничный случай не превратился в сбой?
GoПреобразования: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
type Meters int
func main() {
    var d Meters = 5
    var extra int = 2
    // _ = d + extra
    _ = d + Meters(extra)
}
Вопрос 18 из 20
Перед публикацией кода по теме «Преобразования» нужно уточнить контракт. Какое свойство конструкции определяет её поведение?
GoПреобразования: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
type Meters int
func main() {
    var d Meters = 5
    var extra int = 2
    // _ = d + extra
    _ = d + Meters(extra)
}
Вопрос 19 из 20
В рабочем примере по теме «Преобразования» важно отделить гарантию от догадки. Что стоит проверить до переноса решения в общий компонент?
Вопрос 20 из 20
Фрагмент относится к теме «Преобразования». Как точнее всего описать пользу и цену этого решения?

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

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

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

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