История изменений
Исправление DarkEld3r, (текущая версия) :
...но даже без него, с наличием pattern matching ситуация уже не такая унылая, как в Си.
Паттерн матчин - это, разумеется, здорово. Хотя если функция у нас возвращает или ошибку или ничего и нам нужно просто пробросить ошибку дальше, то получается не лучше, чем в С. Впрочем, не буду утверждать, что именно такой код часто нужен:
if(ERROR == f1()) {
return ERROR;
}
if(ERROR == f2()) {
return ERROR;
}
...
match f1() {
Err(e) => return Err(e),
_ => ()
}
match f2() {
Err(e) => return Err(e),
_ => ()
}
...
Вложенные матчи мне нравятся ещё меньше.
Исходная версия DarkEld3r, :
...но даже без него, с наличием pattern matching ситуация уже не такая унылая, как в Си.
Паттерн матчин - это, разумеется, здорово. Хотя если функция у нас возвращает или ошибку или ничего и нам нужно просто пробросить ошибку дальше, то получается не лучше, чем в С. Впрочем, не буду утверждать, что именно такой код часто нужен:
if(ERROR == f1()) {
return ERROR;
}
if(ERROR == f2()) {
return ERROR;
}
...
match f1() {
Err(e) => return Err(e),
_ => ()
}
match f2() {
Err(e) => return Err(e),
_ => ()
}
...
Вложенные матчи мне нравятся ещё меньше.