В Rust не принято возвращать из функций "чистый" тип, обычно для этого используется перечисление enum. Если говорить о стандартных библиотеках Rust то чаще всего возвращается

pub enum Option<T> {
Some(T),
None,
}

Предполагается, что значение может отсутствовать.

Или

pub enum Result<T, E> {
Ok(T),
Err(E),
}

для возвращения конкретного результата или ошибки.

Встречаются и другие варианты, в зависимости от того, что должно быть возвращено.

Пример с Option

fn main() {
 let num = vec![1, 2, 3, -10, 143];
 // Возвращает Option<&i32> по индексу
 let res = num.get(4);.
 match res {
     Some(value) => println!("Нашли: {}", value),
     None => println!("Не нашли"),
 }
}

Пример с Result. Кто читал предыдущие посты подобные примеры уже неоднократно встречались.


use std::io;

fn main() {
   let mut input = String::new(); // строка для ввода
   println!("Введите ваше имя:");.
// ввод с клавиатуры с проверкой ошибки с дописывания строки input
   match io::stdin().read_line(&mut input) {
       Ok(n) => {
         println!("Всего {} байтов", n);
         let mut input = "Привет ".to_string() + &input.trim() + &"!".to_string();
         println!("{}", input);
       }
       Err(error) => {
         println!("Ошибка при чтении: {}", error);
       }
   }
}

Обработка с оператором match предпочтительна, но не обязательна. В дальнейшем расскажу о других возможностях.

Описанные выше особенности языка rust входит в его основы. Это следует усвоить.
Просмотры: 33
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти