虽然我已经编写 Ruby 有一段时间了,但我一直在寻找改进我的风格的方法。
我已经习惯了一种特别简短、简洁的实例化 + 附加到数组的方法:
ruby-1.9.3-p194 :001 > (a ||= []) << 1
=> [1]
这种特殊的语法似乎只在与数组一起使用时才有效,因为我尝试对其他类型执行此操作会返回语法错误。
ruby-1.9.3-p194 :002 > (i ||= 0) += 1
SyntaxError: (irb):2: syntax error, unexpected tOP_ASGN, expecting $end
(i ||= 0) += 1
^
from /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
而且,还有字符串,虽然我非常希望这在之前的实验中不起作用。
ruby-1.9.3-p194 :003 > (s ||= '') += 'TEST'
SyntaxError: (irb):3: syntax error, unexpected tOP_ASGN, expecting $end
(s ||= '') += 'TEST'
^
from /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
使用这种语法形式时,Array 与其他类型的区别是什么?