Индекс форумов |
Исходное сообщение |
---|
"Релиз языка программирования Go 1.14" Отправлено Аноним, 27-Фев-20 12:19 |
Вы хоть разобрались бы, о чем речь. Под пробросом ошибок подразумевается, что вместо копипасты "if err!= nil {return err;}" на Rust можно написать что-нибудь в духе "let response = service.get_data()?;", и если из get_data вернулась ошибка Result::Err(error), то она вернется из функции, а если нет, то результат исполнения Result::Ok(response) распакуется и поместится в переменную response, а функция продолжит выполнение. Т.е. абсолютно то же, что и с Go, только тело функции не засрано бойлерплейтом. И даже более того, в Go 2.0, насколько я помню, подумывают добавить похожую фичу. К тому же, учитывая, что в Rust ошибки упакованы в алгебраический тип Result, семантика языка не даст их не проверить/не пробросить выше, и никакой линтер для этого, как в случае с Go, не нужен. |
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |