コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rubyの文字列は * をつかって掛け算のように書くことで繰り返し生成ができるが、注意が必要

あ、そんなこともできるんだというトリビア感と同時に普通にバグが滑り込みそうと思ったのでメモ

環境

$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]

出典

文字列の内容を times 回だけ繰り返した新しい文字列を作成して返します。 -instance method String#* (Ruby 2.5.0)

"huga" * 3
# => "hugahugahuga"

"0" * 20
# => "00000000000000000000"

文字列ならもちろん変数でも動いてしまうので、期待値と沿わない変数名の付け方すると誤認するので気をつけたい

# 間違って価格を文字列で定義してしまう
price = "1000"
# => "1000"

# 消費税的な掛け算をしても反映されない
full_price = price * 1.08
# => "1000"

関連リンク