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

Карты и строки

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 4 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 20
Фрагмент относится к теме «Карты map». Какой итог можно предсказать без пробного запуска?
GoКарты map: результат выполнения
// Фрагмент для трассировки.
package main
func main() {
    var m map[string]int
    _ = m["x"]
    // m["x"] = 1
}
Вопрос 2 из 20
На ревью разбирают тему «Карты map». Как изменить решение, не ломая его исходную задачу?
GoКарты map: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main() {
    var m map[string]int
    _ = m["x"]
    // m["x"] = 1
}
Вопрос 3 из 20
В разделе «Карты map» показан конкретный случай. Какое утверждение остаётся верным на всех поддерживаемых платформах?
GoКарты map: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main() {
    var m map[string]int
    _ = m["x"]
    // m["x"] = 1
}
Вопрос 4 из 20
Команда проверяет решение по теме «Карты map». Какое условие нельзя считать выполненным по умолчанию?
Вопрос 5 из 20
Перед публикацией кода по теме «Карты map» нужно уточнить контракт. Какой вариант честно называет и преимущество, и издержку?
Вопрос 6 из 20
На ревью разбирают тему «Проверка наличия». Как точнее всего описать выполнение фрагмента?
GoПроверка наличия: результат выполнения
// Фрагмент для трассировки.
package main
func main() {
    m := map[string]int{"x":0}
    vx, okx := m["x"]
    vy, oky := m["y"]
    _, _, _, _ = vx, okx, vy, oky
}
Вопрос 7 из 20
В разделе «Проверка наличия» показан конкретный случай. Какая доработка делает поведение явным для вызывающего кода?
GoПроверка наличия: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main() {
    m := map[string]int{"x":0}
    vx, okx := m["x"]
    vy, oky := m["y"]
    _, _, _, _ = vx, okx, vy, oky
}
Вопрос 8 из 20
Команда проверяет решение по теме «Проверка наличия». Какое правило достаточно применить для проверки ответа?
GoПроверка наличия: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main() {
    m := map[string]int{"x":0}
    vx, okx := m["x"]
    vy, oky := m["y"]
    _, _, _, _ = vx, okx, vy, oky
}
Вопрос 9 из 20
Перед публикацией кода по теме «Проверка наличия» нужно уточнить контракт. Какой граничный случай нужно проверить отдельно?
Вопрос 10 из 20
В рабочем примере по теме «Проверка наличия» важно отделить гарантию от догадки. Какой инженерный компромисс здесь действительно существует?
Вопрос 11 из 20
В разделе «Строки и руны» показан конкретный случай. Что именно произойдёт при выполнении показанного фрагмента?
GoСтроки и руны: результат выполнения
// Фрагмент для трассировки.
package main
import "unicode/utf8"
func main() {
    s := "я"
    _, _ = len(s), utf8.RuneCountInString(s)
}
Вопрос 12 из 20
Команда проверяет решение по теме «Строки и руны». Как исправить основной риск без ненужной перестройки решения?
GoСтроки и руны: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "unicode/utf8"
func main() {
    s := "я"
    _, _ = len(s), utf8.RuneCountInString(s)
}
Вопрос 13 из 20
Перед публикацией кода по теме «Строки и руны» нужно уточнить контракт. Какой принцип позволяет вывести ответ без запуска программы?
GoСтроки и руны: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "unicode/utf8"
func main() {
    s := "я"
    _, _ = len(s), utf8.RuneCountInString(s)
}
Вопрос 14 из 20
В рабочем примере по теме «Строки и руны» важно отделить гарантию от догадки. Какой контрпример разрушит слишком широкое толкование правила?
Вопрос 15 из 20
Фрагмент относится к теме «Строки и руны». Что важно учесть помимо формальной корректности?
Вопрос 16 из 20
Команда проверяет решение по теме «Итерация UTF-8». Какое описание результата совпадает с правилами Go?
GoИтерация UTF-8: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    for i, r := range "aя" { fmt.Println(i, r) }
}
Вопрос 17 из 20
Перед публикацией кода по теме «Итерация UTF-8» нужно уточнить контракт. Какая правка устраняет причину, а не маскирует её проявление?
GoИтерация UTF-8: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    for i, r := range "aя" { fmt.Println(i, r) }
}
Вопрос 18 из 20
В рабочем примере по теме «Итерация UTF-8» важно отделить гарантию от догадки. Что именно гарантирует Go в этой ситуации?
GoИтерация UTF-8: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    for i, r := range "aя" { fmt.Println(i, r) }
}
Вопрос 19 из 20
Фрагмент относится к теме «Итерация UTF-8». Что нельзя автоматически переносить на похожий код?
Вопрос 20 из 20
На ревью разбирают тему «Итерация UTF-8». Как оценить этот подход для производственного кода?

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

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

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

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