In PHP I can use the
return keyword, but it doesn't work on Ruby:# expected to see 1, 2 and 5; not 3 nor 4; and no errors eval "puts 1; puts 2; return; puts 3; puts 4" # => Error: unexpected return puts 5
I tried with
return, end, exit, break, and I couldn't get success. exit doesn't raise errors, but then I don't get the 5.After many tries and a question in StackOverflow, I found a solution which fits best into my problem:
lambda do eval "puts 1; puts 2; return; puts 3; puts 4" end.call puts 5
This way the intuitive
return keyword can be used inside eval to get out from it successfully.You can find alternative ways at StackOverflow.
No comments:
Post a Comment