Nic*_*ick 41 ruby introspection naming-conventions
我很好奇为什么Ruby的内省相关方法来检查对象是否响应方法respond_to?而不是responds_to?
这对我来说似乎总是很尴尬,但也许那是因为我习惯于respondsToSelector客观c.
And*_*imm 71
Matz 喜欢第二人称单数或第三人称复数:
"responds_to?" 英语使用者可能比"respond_to?"更有意义.
也许.但我是日本人.Ruby不是英语.这是在标准库中避免第三人称单数形式的基本命名规则.
Run Code Online (Sandbox Code Playgroud)you = Human.new if you.respond_to?(:knock) ... end
你怎么知道接收器总是第三人称单数?可能的是,所述接收机是I,we,you,或they,或表示多个一些其他的事情.在那种情况下,你还会说这responds_to?比自然更自然respond_to?吗?为了保持通用性,最好将表单中的方法命名为尽可能通用.而不是命名的第三人称单数的方法,它更有意义,它的名字在默认情况下,以稀少不定式形式,这也是在字典中.