Страницы

Поиск по вопросам

среда, 1 января 2020 г.

Знак вопроса RUST

#rust


fn main() {
use std::fs::File;
use std::io::prelude::*;

fn foo() -> std::io::Result<()> {
     let mut file = File::create("foo.txt")?; //здесь
     file.write_all(b"Hello, world!")?; //здесь 
     Ok(())
   }
}


Для чего нужен знак вопроса ?
    


Ответы

Ответ 1



expression? - это сокращенная запись для try!(expression). Описание макроса try! из руководства по Rust. Вкратце. Если expression возвращает значение Err(err), то try! (или ?) выполняет немедленный выход из функции: return Err(err.into()). Если же значение expression - Ok(v), то макрос возвращает v и исполнение продолжается.

Комментариев нет:

Отправить комментарий