Back

ruby中的return ( the 'return' keyword in Ruby)

发布时间: 2014-01-05 00:55:00

Ruby中的 return 还是有些学问的,平时用着看不出来,但是真到见真章的时候就考验功夫了:

1. eval 中不能出现 return ,否则会报错 (LocalJumpError)

2. Proc.new 中不能出现return, 出错也是 LocalJumpError

3. lambda中可以return . 在caller method中之后继续执行

4. 总则: 在ruby的某个方法中:如果最后一句不写return, 那么也默认return 它。

examples: 
def give_me
   # return "your money"
  "your money"  
end

eval "1+1" #=> 2
eval "a = 1+1; return a" # => LocalJumpError

see also: http://siwei.me/blog/posts/lambda-v-s-proc-new

Back