RUBY-LANG.ORG/JPのコード
何気なくRubyオフィシャルサイトを見ていて、ふとあるコードが書いてあることに気づいた。短いコードなのだが、なかなか面白い、というか、一部分知らないStringメソッドが使われてたので、ちょっと調べてみた。
上記サイトに書かれているコードは次のようなもの。
# Output "I love Ruby" say = "I love Ruby" puts say # Output "I *LOVE* RUBY" say['love'] = "*love*" puts say.upcase # Output "I *love* Ruby" # five times 5.times { puts say }
文字列(String)の部分文字列を[]で指定し、そこに文字列を代入すると文字列の置換が出来るようなのです。なるほどねー。
普通使うであろうメソッドでいうところの String#sub! に相当しているようで、String#gsub! 的には使えないみたい。
say = "I love Ruby, I have a glove." say['love'] = '*love*' puts say #=> "I *love* Ruby, I have a glove" say = "I love Ruby, I have a glove." say.sub!('love', '*love*') puts say #=> "I *love* Ruby, I have a glove" say = "I love Ruby, I have a glove." say.gsub!('love', '*love*') puts say #=> "I *love* Ruby, I have a g*love*"