Je lisais un texte décrivant Ruby et il a dit ce qui suit:Quand vous dites que Ruby est réfléchissant, est-ce que cela se réfère principalement à "dactylographie"?
Ruby est considéré comme une « réflexion » langue, car il est possible pour un programme Ruby s'analyser (en termes de maquillage), faire ajustements à la façon dont il fonctionne, et même écraser son propre code avec tout autre code .
Je suis confus par ce terme « réflexion » - est-ce parle surtout de la façon dont Ruby peut regarder une variable et déterminer si elle est un entier ou une chaîne (duck typing), par exemple:
x = 3
x = "three" # Ruby reassigns x to a String type
Je pense que vous êtes également confus au sujet du terme «dactylographie». Il ne s'agit pas de regarder une variable et de déterminer son type, mais plutôt de traiter tout type qui répond à des méthodes spécifiques de la même manière. Par exemple "123" .size et [1,2,3] .size - ... (suite au commentaire suivant) – Dema
donc, si vous créez une méthode comme ceci "def print_size (obj) met obj.size; end "- Peu importe si vous lui passez une chaîne ou un tableau, cela fonctionnera quel que soit le type car tous les deux implémentent" size ". En d'autres termes, ils «charlatent» tous les deux, ils doivent donc être un «canard» (ce qui n'est pas vrai) - c'est ce que pense Ruby. – Dema