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

Массивы и срезы

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 4 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 20
На ревью разбирают тему «Массивы». Что гарантированно произойдёт в показанной последовательности операций?
GoМассивы: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    a := [2]int{1,2}
    b := a
    b[0] = 9
    fmt.Println(a, b)
}
Вопрос 2 из 20
В разделе «Массивы» показан конкретный случай. Какой вариант исправления соответствует обычной практике Go?
GoМассивы: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    a := [2]int{1,2}
    b := a
    b[0] = 9
    fmt.Println(a, b)
}
Вопрос 3 из 20
Команда проверяет решение по теме «Массивы». Какой принцип языка объясняет результат полностью?
GoМассивы: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    a := [2]int{1,2}
    b := a
    b[0] = 9
    fmt.Println(a, b)
}
Вопрос 4 из 20
Перед публикацией кода по теме «Массивы» нужно уточнить контракт. Какой предел контракта важен для вызывающего кода?
Вопрос 5 из 20
В рабочем примере по теме «Массивы» важно отделить гарантию от догадки. Как решение скажется на тестировании и дальнейших изменениях?
Вопрос 6 из 20
В разделе «len и cap» показан конкретный случай. Какое наблюдение о работе кода будет верным?
Golen и cap: результат выполнения
// Фрагмент для трассировки.
package main
func main() {
    a := [4]int{0,1,2,3}
    s := a[1:3]
    _, _ = len(s), cap(s)
}
Вопрос 7 из 20
Команда проверяет решение по теме «len и cap». Какую правку разумнее внести до объединения изменений?
Golen и cap: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main() {
    a := [4]int{0,1,2,3}
    s := a[1:3]
    _, _ = len(s), cap(s)
}
Вопрос 8 из 20
Перед публикацией кода по теме «len и cap» нужно уточнить контракт. Какое правило Go непосредственно объясняет поведение фрагмента?
Golen и cap: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main() {
    a := [4]int{0,1,2,3}
    s := a[1:3]
    _, _ = len(s), cap(s)
}
Вопрос 9 из 20
В рабочем примере по теме «len и cap» важно отделить гарантию от догадки. Где заканчивается гарантия показанного приёма?
Вопрос 10 из 20
Фрагмент относится к теме «len и cap». Когда этот приём помогает, а когда начинает мешать?
Вопрос 11 из 20
Команда проверяет решение по теме «Рост среза через append». Каков наблюдаемый результат этого кода?
GoРост среза через append: результат выполнения
// Фрагмент для трассировки.
package main
func main() {
    s := make([]int, 0, 2)
    s = append(s, 1)
    s = append(s, 2)
    s = append(s, 3)
    _ = s
}
Вопрос 12 из 20
Перед публикацией кода по теме «Рост среза через append» нужно уточнить контракт. Какое изменение лучше всего укрепит контракт этого фрагмента?
GoРост среза через append: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
func main() {
    s := make([]int, 0, 2)
    s = append(s, 1)
    s = append(s, 2)
    s = append(s, 3)
    _ = s
}
Вопрос 13 из 20
В рабочем примере по теме «Рост среза через append» важно отделить гарантию от догадки. Какое утверждение точнее всего описывает действующую гарантию?
GoРост среза через append: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
func main() {
    s := make([]int, 0, 2)
    s = append(s, 1)
    s = append(s, 2)
    s = append(s, 3)
    _ = s
}
Вопрос 14 из 20
Фрагмент относится к теме «Рост среза через append». Что может изменить вывод при небольшом изменении условий?
Вопрос 15 из 20
На ревью разбирают тему «Рост среза через append». Как решение влияет на читаемость и надёжность?
Вопрос 16 из 20
Перед публикацией кода по теме «Общий backing array» нужно уточнить контракт. Что увидит вызывающий код после выполнения?
GoОбщий backing array: результат выполнения
// Фрагмент для трассировки.
package main
import "fmt"
func main() {
    a := []int{1,2,3}
    left := a[:2]
    right := a[1:]
    left[1] = 8
    fmt.Println(right)
}
Вопрос 17 из 20
В рабочем примере по теме «Общий backing array» важно отделить гарантию от догадки. Как подготовить этот код к реальному использованию?
GoОбщий backing array: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import "fmt"
func main() {
    a := []int{1,2,3}
    left := a[:2]
    right := a[1:]
    left[1] = 8
    fmt.Println(right)
}
Вопрос 18 из 20
Фрагмент относится к теме «Общий backing array». Какой контракт определяет результат показанного кода?
GoОбщий backing array: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import "fmt"
func main() {
    a := []int{1,2,3}
    left := a[:2]
    right := a[1:]
    left[1] = 8
    fmt.Println(right)
}
Вопрос 19 из 20
На ревью разбирают тему «Общий backing array». Какое допущение здесь чаще всего оказывается ложным?
Вопрос 20 из 20
В разделе «Общий backing array» показан конкретный случай. Какое замечание о цене решения будет точным?

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

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

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

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