2

我正在使用该方法mm。在 ruby​​ 1.9.2 中,它的行为很奇怪,而不是1.9.2=>10我得到的预期结果

ELSE **
1.9.2=>8

知道发生了什么吗?

class A

 def mm(data)
   begin
     send_len = data
     return send_len
   rescue Exception
     STDOUT.write("Rescue *#{$!}*\n")
   else
     STDOUT.write("ELSE *#{$!}*\n")
   end
 end

end # class A

a = A.new
print "#{RUBY_VERSION}=>#{a.mm(10)}\n"

使用 1.8.7 我得到了预期的结果:

1.8.7=>10
4

1 回答 1

3

这是Ruby 中的一个开放错误。但是,有一个讨论,它是否应该像 1.8 中的那样表现,还是应该像 1.9 中那样表现。

Ruby 的作者 Matz认为它的行为应该与 1.8 中的一样

于 2011-06-24T11:23:16.610 回答