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

Практика на времена жизни в Rust

Даны строки:

let short = String::from("a"); let long = String::from("bbb");

Напишите функцию, которая возвращает более длинный фрагмент из двух общих ссылок, свяжите сроки в типах и выведите результат.

Дан текст:

let sample = String::from("code");

Объявите структуру с полем-ссылкой, положите в нее sample, выведите поле и убедитесь, что переменная еще жива в момент вывода.

Дано слово:

let word = String::from("rust");

Запишите функцию с одной входной ссылкой, которая отдает первый ASCII-символ как подстроку, без явной пометки в сигнатуре, и выведите результат.

Дан черновик:

fn out() -> &str { let t = String::from("x"); &t }

Объясните, почему код не собирается, и перепишите функцию так, чтобы она возвращала текст "x" снаружи законным способом.

Даны метки:

struct Pair<'a> { left: &'a str, right: &'a str, }

Заполните структуру двумя литералами "go" и "rust", выведите оба поля и назовите срок, на который они рассчитаны.

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

fn longer<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() >= y.len() { x } else { y } } let p = String::from("aa"); let q = String::from("b"); let r = longer(p.as_str(), q.as_str());

Допишите main, выведите r до конца блока, где живут p и q, и кратко опишите, что ограничивает срок r.

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