| ▲ | Rucadi 3 days ago | |
This is also somewhat common in c++ with immediate-invoked lambdas | ||
| ▲ | jeroenhd 2 days ago | parent | next [-] | |
The same pattern can also be useful in Rust for early returning Result<_,_> errors (you cannot `let x = foo()?` inside of a normal block like that).
would fail to compile, or worse: would return out of the entire method if surrounding method would have return type Result<_,i32>. On the other hand,
runs just fine.Hopefully try blocks will allow using ? inside of expression blocks in the future, though. | ||
| ▲ | carstimon 2 days ago | parent | prev | next [-] | |
A blog post for it from a prominent c++er https://herbsutter.com/2013/04/05/complex-initialization-for... | ||
| ▲ | knorker 2 days ago | parent | prev [-] | |
Yeah but languages that make you resort to this then don't let you simply return from the block. And the workarounds often make the pattern be a net loss in clarity. | ||