野田です。

いろいろ教えていただきありがとうございます。
is_a? を使うか kind_of? を使うかのときもそうだったのですが,
Rubyは結果的に同じ処理をするにしても,いろいろな書き方があって
自分なりのこだわり(スタイル?)がないと,どれを使おうか
迷ってしまうという嬉しい言語ですね。
(だから「推奨」っていうのがあるんでしょうか)

defined? word.to_ary
word.is_a?
Array === word

とあるなかで,結局今回は is_a? を使うことにしました。

ただ,
Masaaki Sakano <mas / star.le.ac.uk> wrote:
> ただ、、、Ruby の推奨は、Array というクラス名で直接判定ではなく、
> 必要なメソッド(の名前)があるかどうかで判断した方がよい、
> ということに(慣習として?)なっていたと理解しています。

UENO Katsuhiro <unnie / blue.sky.or.jp> wrote:
> ただ、Ruby では、クラスよりもメソッドの有無のほうが、オブジェクトが
> 望まれる性質を有しているかどうかを判定するための情報として好ましい
> 局面が(圧倒的に)多いのは確かです。

とのことで,どうしてメソッドの有無の判定が慣習になったのかな
ということを考えてみると, defined? word.to_ary という考え方に
なるほどと思いました。
(でも今回は配列っていうデータ構造の正否を判断するという
 目的だったので, is_a? にしました。)


それにしても,MLに入るといろいろ勉強になります。
ありがとうございます。(ぺこ)
---
nonta / yo.rim.or.jp