puts 'A'.upcase! nil を返します。特に 'Ab' は 'B' ではなく 'AB' を返すため、これはちょっと混乱します。これはバグですか、それとも言語の癖ですか?
編集 してドキュメントを表示しますが、それでも直観に反するようです。実際の使用シナリオでこれが意味を持つのはいつですか? 私はそれが助けになるよりも多くの問題を引き起こしているのを見ることができました
編集ティホムの答えは最高のようです。彼が言及している投稿とコメントから、Matz と Ruby 開発チームは、話し言葉での連鎖メソッドの感性よりも、データ型の整合性 (文字列は不変であるべき) の一貫性に動機付けられている可能性が高いことがわかりました。 .
アップケースのようです!単一文字の場合は、実用的な用途がない少し奇妙なアヒルであり、英語を話す人にとっては直感に反する少し病理学的なケースです。Tihom は、Ruby の文字列不変性の優先順位付けの他の例がより合理的であると述べています。
より直感的な例は gsub! で、置換が行われなかった場合は nil を返します。
"abc".gsub!('d','') #=> nil