文字列クラスのメソッド数
文字列(String)クラスのメソッド数。
圧倒的じゃないか、我が軍は。
ちなみに、実際に数えたらRuby 1.8で102、Ruby 1.9で103だった。
ruby -e 'p ((String.instance_methods - Object.instance_methods).size)'
Matzにっき - Number of Methods in the String Class“圧倒的”とまで言われると気になるもので、Squeak Smalltalk(Squeak3.9)のも調べてみた。
(String allSelectors difference: Object allSelectors) size "=> 491 "
(´ー`)フッ… あえて言おう! カs……いや。やめとこ。w
文字列クラスのメソッド数比較 - Smalltalkのtは小文字です
.net framework 3.5 だと、
typeof(string).GetMembers().Count(); // 124
とのこと。
戦いは数だよ!とか言いたくなりそうだが、.net の場合オーバーロードもそれぞれカウントされているので、(Java はともかく)そのまま比較するのはフェアでないだろう。
名前が相異なるメンバを数えると、
typeof(string).GetMembers().Select((member) => member.Name).Distinct().Count(); // 50
という訳で、実は .net の System.String のたいていのメンバは 2 つ以上のオーバーロードを持っているようだ。
また、Java と比べると、文字列のエンコーディング関連が分離されていたり、正規表現が別クラスだったり、ToString 系のメソッドは ToString する対象の型のメンバ*1になっていたり、で本質的には Java よりメンバが少ないってほどでもなさそう。
そういえば、以前 Java でコードを書いていたときは、int やらが Object でない&値型をユーザー定義出来ないのが気持ち悪かったり非常に困った*2りした記憶が・・・。今の Java だとどうなのか少し気になる・・・。