Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Rubyの数値は破壊できない

文字列であれば、replaceメソッドを使って上書きする事ができます

"s".replace "a"
#=> "a"

ところが、数値系クラスは破壊できません。

2.replace(4)
##NoMethodError: undefined method `replace' for 2:Fixnum

強引にやる場合、tapを使う手がありますが

2.tap{|i| break i+3}
#=> 5

チェインから抜ければ無効です

tmp = 2
(1..10).each {|i| p tmp.tap {|x| break i + x}}
#3
#4
# ... 
#11
#12