From: gotoken@... (GOTO Kentaro) Date: 1999-11-24T04:18:30+09:00 Subject: [ruby-list:18874] Array#=== (Re: initializer polymorphism?) ごとけんです In message "[ruby-list:18869] Re: initializer polymorphism?" on 99/11/24, Masaki Fukushima writes: >以前に Array#=== の意味が include? から変更された時、要素間の=== >ではなく、要素間の==が選ばれたのは何故なんでしょう? 何だったか探せませんでしたが、いちおう僕の見解を再度書いてお くと、Array#=== は include? であった方が便利だと思います。 === は主に case を簡潔に記述するためのモノで、case の機能は 場合分けであるが、おおむね case x の x が複数の集合のうちど れに属するかを判定することが多いので、出来る限り所属性を意味 するメソッドを当てるべきだと思います。少なくとも、Class、 Range、Regexp という3つのモノについてはこのルールに乗っ取っ ているように見えるので、Array もこうした方が良いと思います。 # regexp === string が所属性を判定しているという点に、以前、 # まつもとさんは納得してくれなかったけど、正規表現は文字列の # 集合を規定していると僕はいまでも思うです ^^;; -- gotoken