Re[4]: Option vs ? - критика Rust
От: DarkEld3r  
Дата: 07.11.23 12:06
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Например я пишу приложение, которое pdf файлы разбирает на кусочки. Если друг не получилось прочитать или записать файл, то программа должна упасть. У меня нет других вариантов обработки этой ошибки. Причем упасть желательно со стектрейсом. Почему в этом случае я не должен использовать unwrap?


Вообще если это именно приложение для конечного пользователя, а не для тебя лично, то вместо стектрейса нужна нормальный текст ошибки, а может и сразу форма отправки баг-репорта.

G>То что в расте вы называете наследованием поведение — это экстеншн-методы в извращенной форме.


Почему? Чем реализация трейта отличается от реализации интерфейса? И чем наследование трейтов отличается от наследования интерфейсов?

Z>>Наследования данных действительно нет, но для ООП это и не нужно, просто так исторически

Z>>сложилось, что классы наследовали и поведение и данные.
G>Ага, не нужно. Открываем доку https://rust-cli.github.io/book/tutorial/cli-args.html прямо с оф сайта видим:
G>
G>use clap::Parser;

G>/// Search for a pattern in a file and display the lines that contain it.
G>#[derive(Parser)]
G>struct Cli {
G>    /// The pattern to look for
G>    pattern: String,
G>    /// The path to the file to read
G>    path: std::path::PathBuf,
G>}

G>fn main() {
G>    let args = Cli::parse();
G>}
G>


G>Упс, наследование поведения через макросы. Даже ооп как такового нет, а наследование есть.


То, что (некоторые) процедурные макросы навешиваются через derive ещё не делает это наследованием.

G>В этом и проблема.


В чём? Ну и всё-таки есть ли прибитость к движку или нет?.. Так-то в C# ты вообще "движок" поменять не можешь и ничего.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.