Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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