オブジェクトがメソッドに応答するかどうかをチェックするRubyのイントロスペクション関連のメソッドが、respond_to?
ではなくresponds_to?
である理由に興味があります。
それはいつも私には厄介に思えますが、おそらくそれは私がObjective-cでrespondsToSelector
に慣れているためです。
Matz 優先 二人称単数形または三人称複数形:
「responds_to?」おそらく「respond_to?」よりも英語を話す人にとって意味があります。
多分。でも私は日本人です。 Rubyは英語ではありません。標準ライブラリで第三者の単数形を避けるための基本的な命名規則です。
you = Human.new if you.respond_to?(:knock) ... end
受信者が常に第三者の単数であることをどうやって知っていますか?受信者は、I
、we
、you
、they
、または複数を表すその他のものである可能性があります。その場合でも、responds_to?
はrespond_to?
よりも自然だと思いますか?一般性を維持するために、できるだけ一般的な形式でメソッドに名前を付けることをお勧めします。サードパーソン単数でメソッドに名前を付けるよりも、デフォルトのto-辞書でも使用される不定詞の少ない形式でメソッドに名前を付ける方が理にかなっています。