Ruby 1.9 测试:
# irb
irb(main):001:0> "%d" % nil
TypeError: can't convert nil into Integer
from (irb):1:in `%'
from (irb):1
from /bin/irb:12:in `<main>'
Ruby 1.8 不会抛出异常,默认会转换成0:
irb
irb(main):001:0> "%d" % nil
=> "0"
# irb
irb(main):001:0> "%d" % nil
TypeError: can't convert nil into Integer
from (irb):1:in `%'
from (irb):1
from /bin/irb:12:in `<main>'
Ruby 1.8 不会抛出异常,默认会转换成0:
irb
irb(main):001:0> "%d" % nil
=> "0"
本文通过示例对比了Ruby1.9与Ruby1.8中nil到整数类型转换的行为差异。在Ruby1.9中尝试将nil转换为整数会引发TypeError异常,而在Ruby1.8中则默认将其视为0。

2420

被折叠的 条评论
为什么被折叠?



