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

Модули и видимость

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

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Какая правка выдержит ревью контракта «Импорт имён use»?
RustRust · Импорт имён use
use std::fmt::Result as FmtResult;
use std::io::Result as IoResult;
fn format() -> FmtResult { Ok(()) }
fn read() -> IoResult<()> { Ok(()) }
Вопрос 2 из 20
Как убрать источник проблемы в коде с `outer::inner`?
RustRust · Модули mod
mod outer {
    pub mod inner { pub fn value() -> i32 { 7 } }
}
fn main() { println!("{}", outer::inner::value()); }
Вопрос 3 из 20
Какие значения останутся доступными после `account::User`?
RustRust · Открытая видимость pub
mod account {
    pub struct User { pub name: String, secret: String }
    impl User { pub fn new(name: String) -> Self { Self { name, secret: "x".into() } } }
}
let u = account::User::new("Ada".into());
println!("{}", u.name);
Вопрос 4 из 20
Какое условие способно превратить рабочий пример «Модули mod» в ошибочный?
Вопрос 5 из 20
Какое свойство «Открытая видимость pub» сохранится после небольшого рефакторинга?
Вопрос 6 из 20
Какие значения останутся доступными после `std::fmt::Result`?
RustRust · Импорт имён use
use std::fmt::Result as FmtResult;
use std::io::Result as IoResult;
fn format() -> FmtResult { Ok(()) }
fn read() -> IoResult<()> { Ok(()) }
Вопрос 7 из 20
Какое изменение окружения может повлиять на вывод о «Структура crate»?
Вопрос 8 из 20
Какой вывод о выполнении `version` подтверждает код?
RustRust · Структура crate
// src/lib.rs
pub mod api;
// src/api.rs
pub fn version() -> u8 { 1 }
Вопрос 9 из 20
Как правильно прочитать результат диагностического сценария `parser::parse`?
RustRust · Модули mod
// src/lib.rs
mod parser;
pub use parser::parse;
Вопрос 10 из 20
К какому результату приводит последовательность вокруг `outer::inner`?
RustRust · Модули mod
mod outer {
    pub mod inner { pub fn value() -> i32 { 7 } }
}
fn main() { println!("{}", outer::inner::value()); }
Вопрос 11 из 20
Какая правка выдержит ревью контракта «Открытая видимость pub»?
RustRust · Открытая видимость pub
mod account {
    pub struct User { pub name: String, secret: String }
    impl User { pub fn new(name: String) -> Self { Self { name, secret: "x".into() } } }
}
let u = account::User::new("Ada".into());
println!("{}", u.name);
Вопрос 12 из 20
Что должно войти в отрицательный тест механизма «Открытая видимость pub»?
Вопрос 13 из 20
Какое свойство «Импорт имён use» сохранится после небольшого рефакторинга?
Вопрос 14 из 20
Что может сломаться при другом размере входа или порядке действий в «Импорт имён use»?
Вопрос 15 из 20
Как переработать участок с `version`, сохранив требуемое поведение?
RustRust · Структура crate
// src/lib.rs
pub mod api;
// src/api.rs
pub fn version() -> u8 { 1 }
Вопрос 16 из 20
Что проверяет `m::internal`, если не расширять вывод за пределы выполненного пути?
RustRust · Открытая видимость pub
mod m { pub(crate) fn internal() {} }
fn call() { m::internal(); }
Вопрос 17 из 20
Какое свойство закрепляет сценарий `inner::Item`?
RustRust · Импорт имён use
mod inner { pub struct Item; }
pub use inner::Item;
Вопрос 18 из 20
Какой вывод о механизме «Структура crate» соответствует модели Rust?
Вопрос 19 из 20
Какое свойство «Модули mod» сохранится после небольшого рефакторинга?
Вопрос 20 из 20
Какой узкий вывод следует из проверки `mylib::api`?
RustRust · Структура crate
// src/bin/admin.rs
fn main() { println!("{}", mylib::api::version()); }

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

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

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

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