ExiRe a écrit:
Un tel comportement de ruby est vraiment frustrant. Je veux dire, si vous vous déplacez
à la section privée de l'auto.méthode, puis il n'est PAS privé. Mais si
vous vous déplacez à la classe << auto alors soudain, elle fonctionne.
C'est tout simplement dégoûtant.
Confus il est probablement, frustrant, il peut bien être, mais dégueulasse ce n'est certainement pas.
Il a le sens parfait une fois que vous comprenez Ruby le modèle d'objet et de la méthode de recherche de flux, surtout quand on prend en considération le fait qu' private
est PAS un accès/modificateur de visibilité, mais en fait un appel de méthode (avec la classe comme à son destinataire) comme discuté ici... il n'y a pas une telle chose comme "une section privée" en Ruby.
Pour définir privé instance méthodes, vous appelez private
sur l'instance de la classe pour définir la valeur par défaut de la visibilité pour la suite des méthodes définies pour le privé... et donc il est parfaitement logique pour définir privé de la classe des méthodes en appelant private
sur la classe la classe, c'est à dire. sa métaclasse.
Les autres grands, auto-proclamé OO langues peut vous donner une moins à confusion syntaxe, mais vous avez certainement du commerce que contre une source de confusion et de moins en moins cohérente (incompatible?) modèle d'objet, sans le pouvoir de Ruby métaprogrammation installations.