Пробую создать файл как в примере:
Получаю ошибку "error: mismached types". Возвращается тип core::result::Result вместо юнита ().
Оказывется, макрос try! может вернуть такой тип и он будет возвращаемым типом функции write.
https://doc.rust-lang.org/stable/std/result/
Рабочим является такой вариант:
use std::io;
use std::fs;
pub fn write() -> io::Result<()> {
let mut f = try!(fs::File::create("foo.txt"));
Ok(())
}
Без точки с запятой после Ok(). Файл создался в корневой папке проекта.
------------
PS
Оставлю эту заметку как пример того, что начинать программировать на новом языке не стоит с изучения документации стандартной библиотеки. Лучше познакомиться с основными понятиями по видео и почитать книжки, в которых показано, как следует сочетать конструкции языка между собой.
use std::io::prelude::*; use std::fs::File;
pub fn write() {
let mut f = try!(File::create("foo.txt"));
}
Получаю ошибку "error: mismached types". Возвращается тип core::result::Result вместо юнита ().
Оказывется, макрос try! может вернуть такой тип и он будет возвращаемым типом функции write.
https://doc.rust-lang.org/stable/std/result/
Рабочим является такой вариант:
use std::io;
use std::fs;
pub fn write() -> io::Result<()> {
let mut f = try!(fs::File::create("foo.txt"));
Ok(())
}
Без точки с запятой после Ok(). Файл создался в корневой папке проекта.
------------
PS
Оставлю эту заметку как пример того, что начинать программировать на новом языке не стоит с изучения документации стандартной библиотеки. Лучше познакомиться с основными понятиями по видео и почитать книжки, в которых показано, как следует сочетать конструкции языка между собой.
Комментариев нет:
Отправить комментарий