#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 и исполнение продолжается.
Комментариев нет:
Отправить комментарий