3 ms·
If and unless can be used as post-fix clauses. Also, in ruby, -everything- is an expression, so... of course you can return from there
by ckolkey 4y ago
If and unless can be used as post-fix clauses. Also, in ruby, -everything- is an expression, so... of course you can return from there
- vidarh 4y agoThis isn't exactly true. It's a syntax error to put a return anywhere where the grammar expects a value expression, because it's one of few constructs in Ruby that doesn't return a value (contrast with e.g. "if" and "def" and "class", all of which return a value). E.g. "42 == (return true)" is a syntax error while "42 == if false; true; end" is syntactically valid. You can return in the expression in the comment above because the return is at statement level - nothing above it in the grammar requires a value (but obviously allows it). Off the top of my head I can't remember which other keywords fall in that category. Obviously "end", "then", "alias" and there'll be a few more, but for most keywords in Ruby you're right they can be treated as expressions.