GO Go  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Интерфейсы io.Reader и io.Writer

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

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат и результаты по 5 тематическим шкалам с объяснениями и практическими рекомендациями.
Вопрос 1 из 25
Перед публикацией кода по теме «Чтение через io.Reader» нужно уточнить контракт. Что увидит вызывающий код после выполнения?
GoЧтение через io.Reader: результат выполнения
// Фрагмент для трассировки.
package main
import("io";"strings")
func main(){ r:=strings.NewReader("abc"); buf:=make([]byte,2); for{ n,err:=r.Read(buf); _=buf[:n]; if err==io.EOF{break}; if err!=nil{break} } }
Вопрос 2 из 25
В рабочем примере по теме «Чтение через io.Reader» важно отделить гарантию от догадки. Как подготовить этот код к реальному использованию?
GoЧтение через io.Reader: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import("io";"strings")
func main(){ r:=strings.NewReader("abc"); buf:=make([]byte,2); for{ n,err:=r.Read(buf); _=buf[:n]; if err==io.EOF{break}; if err!=nil{break} } }
Вопрос 3 из 25
Фрагмент относится к теме «Чтение через io.Reader». Какой контракт определяет результат показанного кода?
GoЧтение через io.Reader: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import("io";"strings")
func main(){ r:=strings.NewReader("abc"); buf:=make([]byte,2); for{ n,err:=r.Read(buf); _=buf[:n]; if err==io.EOF{break}; if err!=nil{break} } }
Вопрос 4 из 25
На ревью разбирают тему «Чтение через io.Reader». Какое допущение здесь чаще всего оказывается ложным?
Вопрос 5 из 25
В разделе «Чтение через io.Reader» показан конкретный случай. Какое замечание о цене решения будет точным?
Вопрос 6 из 25
В рабочем примере по теме «Запись через io.Writer» важно отделить гарантию от догадки. Что гарантированно произойдёт в показанной последовательности операций?
GoЗапись через io.Writer: результат выполнения
// Фрагмент для трассировки.
package main
import("bytes";"io")
func main(){ var b bytes.Buffer; n,err:=io.WriteString(&b,"go"); _,_=n,err }
Вопрос 7 из 25
Фрагмент относится к теме «Запись через io.Writer». Какой вариант исправления соответствует обычной практике Go?
GoЗапись через io.Writer: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import("bytes";"io")
func main(){ var b bytes.Buffer; n,err:=io.WriteString(&b,"go"); _,_=n,err }
Вопрос 8 из 25
На ревью разбирают тему «Запись через io.Writer». Какой принцип языка объясняет результат полностью?
GoЗапись через io.Writer: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import("bytes";"io")
func main(){ var b bytes.Buffer; n,err:=io.WriteString(&b,"go"); _,_=n,err }
Вопрос 9 из 25
В разделе «Запись через io.Writer» показан конкретный случай. Какой предел контракта важен для вызывающего кода?
Вопрос 10 из 25
Команда проверяет решение по теме «Запись через io.Writer». Как решение скажется на тестировании и дальнейших изменениях?
Вопрос 11 из 25
Фрагмент относится к теме «Композиция». Какое наблюдение о работе кода будет верным?
GoКомпозиция: результат выполнения
// Фрагмент для трассировки.
package main
import("bytes";"io";"strings")
func main(){ var copy bytes.Buffer; r:=io.TeeReader(strings.NewReader("abc"),&copy); _,_=io.ReadAll(r) }
Вопрос 12 из 25
На ревью разбирают тему «Композиция». Какую правку разумнее внести до объединения изменений?
GoКомпозиция: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import("bytes";"io";"strings")
func main(){ var copy bytes.Buffer; r:=io.TeeReader(strings.NewReader("abc"),&copy); _,_=io.ReadAll(r) }
Вопрос 13 из 25
В разделе «Композиция» показан конкретный случай. Какое правило Go непосредственно объясняет поведение фрагмента?
GoКомпозиция: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import("bytes";"io";"strings")
func main(){ var copy bytes.Buffer; r:=io.TeeReader(strings.NewReader("abc"),&copy); _,_=io.ReadAll(r) }
Вопрос 14 из 25
Команда проверяет решение по теме «Композиция». Где заканчивается гарантия показанного приёма?
Вопрос 15 из 25
Перед публикацией кода по теме «Композиция» нужно уточнить контракт. Когда этот приём помогает, а когда начинает мешать?
Вопрос 16 из 25
На ревью разбирают тему «Частичное чтение». Каков наблюдаемый результат этого кода?
GoЧастичное чтение: результат выполнения
// Фрагмент для трассировки.
package main
import("io";"strings")
func main(){ buf:=make([]byte,3); n,err:=io.ReadFull(strings.NewReader("ab"),buf); _,_=n,err }
Вопрос 17 из 25
В разделе «Частичное чтение» показан конкретный случай. Какое изменение лучше всего укрепит контракт этого фрагмента?
GoЧастичное чтение: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package main
import("io";"strings")
func main(){ buf:=make([]byte,3); n,err:=io.ReadFull(strings.NewReader("ab"),buf); _,_=n,err }
Вопрос 18 из 25
Команда проверяет решение по теме «Частичное чтение». Какое утверждение точнее всего описывает действующую гарантию?
GoЧастичное чтение: проверка контракта
// Определите правило Go, которое объясняет результат.
package main
import("io";"strings")
func main(){ buf:=make([]byte,3); n,err:=io.ReadFull(strings.NewReader("ab"),buf); _,_=n,err }
Вопрос 19 из 25
Перед публикацией кода по теме «Частичное чтение» нужно уточнить контракт. Что может изменить вывод при небольшом изменении условий?
Вопрос 20 из 25
В рабочем примере по теме «Частичное чтение» важно отделить гарантию от догадки. Как решение влияет на читаемость и надёжность?
Вопрос 21 из 25
В разделе «Тестирование и наблюдаемость» показан конкретный случай в тесте «Интерфейсы io.Reader и io.Writer». Что увидит вызывающий код после выполнения?
GoТестирование и наблюдаемость: результат выполнения
// Фрагмент для трассировки.
package sample
import("io";"strings";"testing";"testing/iotest")
func TestRead(t *testing.T){ r:=iotest.OneByteReader(strings.NewReader("abc")); b,err:=io.ReadAll(r); if err!=nil||string(b)!="abc"{t.Fatal(string(b),err)} }
Вопрос 22 из 25
Команда проверяет решение по теме «Тестирование и наблюдаемость» в тесте «Интерфейсы io.Reader и io.Writer». Как подготовить этот код к реальному использованию?
GoТестирование и наблюдаемость: фрагмент на ревью
// Фрагмент из ревью: требуется выбрать безопасную правку.
package sample
import("io";"strings";"testing";"testing/iotest")
func TestRead(t *testing.T){ r:=iotest.OneByteReader(strings.NewReader("abc")); b,err:=io.ReadAll(r); if err!=nil||string(b)!="abc"{t.Fatal(string(b),err)} }
Вопрос 23 из 25
Перед публикацией кода по теме «Тестирование и наблюдаемость» нужно уточнить контракт в тесте «Интерфейсы io.Reader и io.Writer». Какой контракт определяет результат показанного кода?
GoТестирование и наблюдаемость: проверка контракта
// Определите правило Go, которое объясняет результат.
package sample
import("io";"strings";"testing";"testing/iotest")
func TestRead(t *testing.T){ r:=iotest.OneByteReader(strings.NewReader("abc")); b,err:=io.ReadAll(r); if err!=nil||string(b)!="abc"{t.Fatal(string(b),err)} }
Вопрос 24 из 25
В рабочем примере по теме «Тестирование и наблюдаемость» важно отделить гарантию от догадки в тесте «Интерфейсы io.Reader и io.Writer». Какое допущение здесь чаще всего оказывается ложным?
Вопрос 25 из 25
Фрагмент относится к теме «Тестирование и наблюдаемость» в тесте «Интерфейсы io.Reader и io.Writer». Какое замечание о цене решения будет точным?

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

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

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

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