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

Коллекции и строки

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Какой вывод допустим после запуска `keys` и чего он не доказывает?
RustRust · Словари HashMap
let mut keys: Vec<_> = counts.keys().copied().collect();
keys.sort_unstable();
assert_eq!(keys, vec!["a", "b"]);
Вопрос 2 из 20
Как лучше всего описать гарантию механизма «Словари HashMap»?
Вопрос 3 из 20
Какое свойство «Индексация Unicode» сохранится после небольшого рефакторинга?
Вопрос 4 из 20
На какой операции нарушается проверяемый Rust контракт?
RustRust · Векторы Vec
let mut v = vec![1, 2, 3];
let first = &v[0];
v.push(4);
println!("{first}");
Вопрос 5 из 20
Какая правка выдержит ревью контракта «String и str»?
RustRust · String и str
fn greet(name: &str) -> String { format!("Hello, {name}") }
let owned = String::from("Ferris");
let msg = greet(&owned);
println!("{msg}");
Вопрос 6 из 20
Что система типов не проверит самостоятельно для механизма «Векторы Vec»?
Вопрос 7 из 20
Какая правка выдержит ревью контракта «Индексация Unicode»?
RustRust · Индексация Unicode
let text = String::from("Здравствуйте");
// let first = text[0];
println!("{}", text.chars().count());
Вопрос 8 из 20
Какую регрессию должен ловить `chars`?
RustRust · Индексация Unicode
let text = "é";
assert_eq!(text.len(), 2);
assert_eq!(text.chars().count(), 1);
Вопрос 9 из 20
Какие значения останутся доступными после `String::from`?
RustRust · String и str
fn greet(name: &str) -> String { format!("Hello, {name}") }
let owned = String::from("Ferris");
let msg = greet(&owned);
println!("{msg}");
Вопрос 10 из 20
Что произойдёт после операции `std::collections::HashMap`?
RustRust · Словари HashMap
use std::collections::HashMap;
let mut counts = HashMap::new();
for word in ["a", "b", "a"] {
    *counts.entry(word).or_insert(0) += 1;
}
println!("{}", counts["a"]);
Вопрос 11 из 20
Какое ограничение языка определяет поведение «String и str»?
Вопрос 12 из 20
Какой край контракта «Индексация Unicode» чаще всего остаётся незамеченным?
Вопрос 13 из 20
Какая правка выдержит ревью контракта «Словари HashMap»?
RustRust · Словари HashMap
use std::collections::HashMap;
let mut counts = HashMap::new();
for word in ["a", "b", "a"] {
    *counts.entry(word).or_insert(0) += 1;
}
println!("{}", counts["a"]);
Вопрос 14 из 20
Что Rust гарантирует при корректном использовании «Векторы Vec»?
Вопрос 15 из 20
Что проверяет `push`, если не расширять вывод за пределы выполненного пути?
RustRust · Векторы Vec
let mut v = vec![1, 2, 3];
let first = v[0];
v.push(4);
assert_eq!(first, 1);
Вопрос 16 из 20
Какое условие способно превратить рабочий пример «Словари HashMap» в ошибочный?
Вопрос 17 из 20
Какой риск остаётся после успешной компиляции кода по теме «String и str»?
Вопрос 18 из 20
Как правильно прочитать результат диагностического сценария `prefix`?
RustRust · String и str
fn prefix(s: &str) -> &str { &s[..1] }
assert_eq!(prefix("Rust"), "R");
Вопрос 19 из 20
Какую несовместимость обнаружит компилятор?
RustRust · Индексация Unicode
let text = String::from("Здравствуйте");
// let first = text[0];
println!("{}", text.chars().count());
Вопрос 20 из 20
Какая правка выдержит ревью контракта «Векторы Vec»?
RustRust · Векторы Vec
let mut v = vec![1, 2, 3];
let first = &v[0];
v.push(4);
println!("{first}");

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

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

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

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