41 votes

Pourquoi Ruby utilise respond_to? au lieu de responds_to?

Je suis curieux de savoir pourquoi la méthode liée à l'introspection de Ruby pour vérifier si un objet répond à une méthode est respond_to? au lieu de responds_to?

Cela me semble toujours gênant, mais c'est peut-être parce que je suis habitué à respondsToSelector en objectif-c.

71voto

Andrew Grimm Points 22996

Matz préfère la deuxième personne du singulier ou la troisième personne du pluriel:

"répond à?" a probablement plus de sens pour les anglophones que "respond_to?".

Peut être. Mais je suis japonais. Ruby n'est pas anglais. C'est la règle de dénomination de base pour éviter la forme singulière à la troisième personne dans les bibliothèques standard.

   you = Human.new
  if you.respond_to?(:knock)
    ...
  end
 

8voto

sawa Points 62592

Comment savez-vous que le récepteur est toujours à la troisième personne du singulier? Il est possible que le récepteur soit I, we, youou they, ou quelque chose d'autre qui représente la pluralité. Dans ce cas, allez-vous encore dire que responds_to? de plus naturel que d' respond_to?? Afin de préserver la généralité, il est préférable de nom d'une méthode dans une forme aussi générale que possible. Plutôt que de nommer une méthode à la troisième personne du singulier, il prend plus de sens à un nom par défaut, àmoins infinitif, qui est également utilisé dans les dictionnaires.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X