Здравствуйте, Sinclair, Вы писали:
S>S>function foo()
S>{
S> let x = bar();
S> if(!isNumber(x)) return x;
S> let y = baz();
S> if(!isNumber(y)) return y;
S> return x+y;
S>}
S>
S>Не знаю, насколько ужасно аналог такого кода будет выглядеть на Расте.
А что такое x, y для начала? Тогда я смогу описать этот код на Расте.
В самом простом случае код такой:
fn bar() -> Result<i32, BarError> { ... }
fn baz() -> Result<i32, BazError> { ... }
fn foo() -> Result<i32, Box<dyn Error>> {
Ok(bar()? + foo()?)
}
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте