演算子の再定義に関する記事で以下のようなコードを目にしました。
NUMBER_REGEXPに代入されている/^\d+$/とは何ですか?
それと
if number?の?はどういった意味があるのでしょうか?
###参照記事
https://qiita.com/tbpgr/items/a4390e91c4d6afb7e878
ruby
1puts "hoge" + "hage" # => hogehage 2puts "1" + "2" # => 12 3 4class String 5 NUMBER_REGEXP = /^\d+$/ 6 7 def +(other) 8 # 数値同士の場合のみ数値演算として加算 9 if number?(self) && number?(other) 10 self.to_i + other.to_i 11 # 数値同士の場合以外は文字列演算として結合 12 else 13 "#{self}#{other}" 14 end 15 end 16 17 private 18 19 def number?(value) 20 value =~ NUMBER_REGEXP 21 end 22end 23 24puts "hoge" + "hage" # => hogehage 25puts "1" + "2" # => 3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/28 14:35