メソッドで文字列を先頭にくっつける
先日つまづいたところ。
最後にくっつけるのであればString#concatでいいんだけど、先頭に追加する方法がわからない。
そもそもメソッドに渡された引数(レシーバ?)の位置付けがイマイチわからない。
結局返り値で更新することにしてみたけど、もっとスマートな方法があるんじゃないか・・・。
def hoge!(arg) arg.gsub!(/a/, "A") arg = "def".concat(arg) puts arg return arg end str = "abc" hoge!(str) puts str str = hoge!(str) puts str
結果
defAbc Abc defAbc defAbc
と思ったら、String#insertというのがあった。orz
def hoge!(arg) arg.insert(0, "abc") #先頭につける arg.concat("efg") #末尾につける arg.gsub!(/a/, "A") #置換 end str = "d" hoge!(str) puts str #結果 Abcdefg