文字列応用レベル
次のプログラムを実行すると何が表示されますか?
a = "Ruby" b = " on Rails" a.concat b a.reverse! p a.index("R", 1)
- 13
- 24
- 311
- 4nil
解説
String#concat は ! が付いていませんが破壊的にレシーバを変更します。そのため a はまず "Ruby on Rails" になります。続く reverse! も破壊的に a を "sliaR no ybuR" に変更します。index("R", 1) は index 1 以降で最初の "R" を探すため、index 4 を返します。! がないメソッドでも破壊的なものがある点に注意します。