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

Условия, циклы и выражения

Требует проследить выражения управления, значения блоков, диапазоны и выход из циклов. Вопросы распределены между чтением кода, диагностикой компиляции, выбором исправления, граничными случаями и инженерными решениями. Базовый синтаксис соответствует Rust 2024 edition; задания не требуют nightly, если это прямо не сказано.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Как правильно истолковать результат проверки механизма «Цикл loop»?
RustRust · Цикл loop
let answer: i32 = loop { break 7; };
assert_eq!(answer, 7);
Вопрос 2 из 20
Какую гарантию даёт `String::from`, а какую нужно проверять отдельно?
RustRust · while и for
let words = vec![String::from("a"), String::from("b")];
for w in &words { print!("{w}"); }
assert_eq!(words.len(), 2);
Вопрос 3 из 20
Что нужно проверить отдельно при переносе механизма «Цикл loop» в библиотечный код?
Вопрос 4 из 20
К какому результату приводит последовательность вокруг `loop`?
RustRust · break со значением
let value = 'outer: loop {
    loop {
        break 'outer 9;
    }
};
println!("{value}");
Вопрос 5 из 20
Какая правка выдержит ревью контракта «Цикл loop»?
RustRust · Цикл loop
let mut n = 0;
let result = loop {
    n += 1;
    if n == 3 { break n * 2; }
};
println!("{result}");
Вопрос 6 из 20
Как изменится состояние программы в показанном сценарии «while и for»?
RustRust · while и for
let mut sum = 0;
for n in 1..=4 { sum += n; }
while sum > 8 { sum -= 3; }
println!("{sum}");
Вопрос 7 из 20
Какая правка выдержит ревью контракта «break со значением»?
RustRust · break со значением
let value = 'outer: loop {
    loop {
        break 'outer 9;
    }
};
println!("{value}");
Вопрос 8 из 20
Как сформулировать контракт механизма «while и for» без привязки к именам переменных?
Вопрос 9 из 20
Какое правило Rust точнее всего описывает механизм «if-выражение»?
Вопрос 10 из 20
Какое решение делает ошибочный путь явным для вызывающего кода?
RustRust · while и for
let mut sum = 0;
for n in 1..=4 { sum += n; }
while sum > 8 { sum -= 3; }
println!("{sum}");
Вопрос 11 из 20
Что должно войти в отрицательный тест механизма «if-выражение»?
Вопрос 12 из 20
Какой эксплуатационный край отличает контракт «while и for» от удачного примера?
Вопрос 13 из 20
Какой сценарий нельзя выводить из одного положительного примера «break со значением»?
Вопрос 14 из 20
Какой вывод о механизме «Цикл loop» соответствует модели Rust?
Вопрос 15 из 20
Какой результат следует из типов и порядка действий в этом коде?
RustRust · if-выражение
let enabled = true;
let value = if enabled { 10 } else { 20 };
println!("{value}");
Вопрос 16 из 20
Как правильно истолковать результат проверки механизма «if-выражение»?
RustRust · if-выражение
let n = 3;
let label = if n > 0 { "positive" } else { "non-positive" };
assert_eq!(label, "positive");
Вопрос 17 из 20
Что изменить, чтобы освобождение ресурса выполнялось ровно одним владельцем?
RustRust · if-выражение
let enabled = true;
let value = if enabled { 10 } else { 20 };
println!("{value}");
Вопрос 18 из 20
Какой результат даст этот фрагмент с `loop`?
RustRust · Цикл loop
let mut n = 0;
let result = loop {
    n += 1;
    if n == 3 { break n * 2; }
};
println!("{result}");
Вопрос 19 из 20
Какую регрессию должен ловить `loop`?
RustRust · break со значением
let found = 'search: loop {
    for n in 0..10 {
        if n == 4 { break 'search Some(n); }
    }
    break None;
};
assert_eq!(found, Some(4));
Вопрос 20 из 20
Как лучше всего описать гарантию механизма «break со значением»?

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

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

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

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