Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpPnPrm 72 of 288 menu
◀ ▶

Практика на панику в Rust

Дано число:

let num = 0;

Напишите main, который проверяет делитель и прерывает запуск с текстом "zero divider", если он равен нулю, иначе выводит частное 10 и 2.

Дан следующий код:

fn pick() -> Option<i32> { Some(4) }

В main получите число из результата pick и выведите его удвоенное значение.

Дан следующий код:

fn empty() -> Option<i32> { None }

В main попробуйте получить число с пояснением "no data" при сбое. Скажите, что произойдет при запуске, не выполняя код, если не хотите прерывания.

Дана функция:

fn cap(s: &str) -> Option<char> { s.chars().next() }

Для строки "rust" выведите первый символ через извлечение. Для пустой строки "" опишите, чем отличается извлечение без своего текста и с текстом "empty input" при запуске.

Дан следующий код:

fn deny_empty(label: &str) { if label.is_empty() { panic!("empty label"); } }

Добавьте блок тестов: один тест ждет остановку при пустой строке, второй проверяет, что при "ok" функция не прерывает выполнение. Запустите cargo test.

Даны фрагменты:

let a: Option<i32> = Some(1); let b: Option<i32> = None;

Соберите main, который выводит сумму из a и число из b через извлечение. Объясните, на какой строке остановится запуск и почему сборка все равно может пройти.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить