あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

メソッドで文字列を先頭にくっつける

先日つまづいたところ。
最後にくっつけるのであれば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