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

Указатели без арифметики

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 4 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 20
Перед публикацией кода по теме «Адрес» нужно уточнить контракт. Какое наблюдение о работе кода будет верным?
GoАдрес: результат выполнения
// Фрагмент для трассировки.
package main
func main(){ n:=3; p:=&n; _ = p == &n }
Вопрос 2 из 20
В рабочем примере по теме «Адрес» важно отделить гарантию от догадки. Какую правку разумнее внести до объединения изменений?
GoАдрес: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main(){ n:=3; p:=&n; _ = p == &n }
Вопрос 3 из 20
Фрагмент относится к теме «Адрес». Какое правило Go непосредственно объясняет поведение фрагмента?
GoАдрес: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main(){ n:=3; p:=&n; _ = p == &n }
Вопрос 4 из 20
На ревью разбирают тему «Адрес». Где заканчивается гарантия показанного приёма?
Вопрос 5 из 20
В разделе «Адрес» показан конкретный случай. Когда этот приём помогает, а когда начинает мешать?
Вопрос 6 из 20
В рабочем примере по теме «Разыменование» важно отделить гарантию от догадки. Каков наблюдаемый результат этого кода?
GoРазыменование: результат выполнения
// Фрагмент для трассировки.
package main
func main(){ n:=1; p:=&n; *p=8; _=n }
Вопрос 7 из 20
Фрагмент относится к теме «Разыменование». Какое изменение лучше всего укрепит контракт этого фрагмента?
GoРазыменование: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main(){ n:=1; p:=&n; *p=8; _=n }
Вопрос 8 из 20
На ревью разбирают тему «Разыменование». Какое утверждение точнее всего описывает действующую гарантию?
GoРазыменование: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main(){ n:=1; p:=&n; *p=8; _=n }
Вопрос 9 из 20
В разделе «Разыменование» показан конкретный случай. Что может изменить вывод при небольшом изменении условий?
Вопрос 10 из 20
Команда проверяет решение по теме «Разыменование». Как решение влияет на читаемость и надёжность?
Вопрос 11 из 20
Фрагмент относится к теме «Изменение значения». Что увидит вызывающий код после выполнения?
GoИзменение значения: результат выполнения
// Фрагмент для трассировки.
package main
func inc(p *int){ (*p)++ }
func main(){ n:=1; inc(&n); _=n }
Вопрос 12 из 20
На ревью разбирают тему «Изменение значения». Как подготовить этот код к реальному использованию?
GoИзменение значения: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func inc(p *int){ (*p)++ }
func main(){ n:=1; inc(&n); _=n }
Вопрос 13 из 20
В разделе «Изменение значения» показан конкретный случай. Какой контракт определяет результат показанного кода?
GoИзменение значения: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func inc(p *int){ (*p)++ }
func main(){ n:=1; inc(&n); _=n }
Вопрос 14 из 20
Команда проверяет решение по теме «Изменение значения». Какое допущение здесь чаще всего оказывается ложным?
Вопрос 15 из 20
Перед публикацией кода по теме «Изменение значения» нужно уточнить контракт. Какое замечание о цене решения будет точным?
Вопрос 16 из 20
На ревью разбирают тему «Время жизни». Что гарантированно произойдёт в показанной последовательности операций?
GoВремя жизни: результат выполнения
// Фрагмент для трассировки.
package main
func makeInt() *int { n:=7; return &n }
func main(){ p:=makeInt(); _=*p }
Вопрос 17 из 20
В разделе «Время жизни» показан конкретный случай. Какой вариант исправления соответствует обычной практике Go?
GoВремя жизни: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func makeInt() *int { n:=7; return &n }
func main(){ p:=makeInt(); _=*p }
Вопрос 18 из 20
Команда проверяет решение по теме «Время жизни». Какой принцип языка объясняет результат полностью?
GoВремя жизни: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func makeInt() *int { n:=7; return &n }
func main(){ p:=makeInt(); _=*p }
Вопрос 19 из 20
Перед публикацией кода по теме «Время жизни» нужно уточнить контракт. Какой предел контракта важен для вызывающего кода?
Вопрос 20 из 20
В рабочем примере по теме «Время жизни» важно отделить гарантию от догадки. Как решение скажется на тестировании и дальнейших изменениях?

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

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

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

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