仕事で結構長いクラス名ついてるなー、っていう感じのヤツが Seaside にふくまれてい
て、コードを書くなどしていました。まあ、それはそれとして「標準で配布されているイメージで定義されているクラスの名前のうち、いちばん長いものってどれくらいの長さなの?」って気になっちゃったんですよ。
気になったら調べてみよう。ということで、やってみました。
環境は Smalltalk Pharo 5 です。

コードとしてはこんな感じ。
| allClasses |はい。他の処理系で試してみると違う結果が出るかもしれませんね。
allClasses := Smalltalk allClasses collect: [ :each | each name ].
allClasses sort: [ :a :b | a size < b size ].
allClasses inspect.
Pharo 5 での結果は以下のようになりました。

どうやら
RBLiteralArrayContainsSuspiciousTrueFalseOrNilRule
というクラスがいちばん長いクラス名のようです。50文字です。2位は48文字で2文字差でのトップとなりました。
上の方だけみていると、フォントがプロポーショナルなためか、これより横幅が長く表示されているものがあって、ほんとうにこの結果あってるの?と思いましたが、下位の方をみてみると確かにきちんとソートできている模様ですね。

こういったシステム全体を俯瞰してすべてに対しての見通しがよいというのも Smalltalk のよさですね。
みなさんも「どんなメソッド名がいちばんよく使われているか」など気になったら調べてみると面白いかもしれません。
0 件のコメント:
コメントを投稿