méthode avec même nom et paramètres différents dans Ruby
J'ai ce code:
def setVelocity (x, y, yaw)
setVelocity (Command2d.new(x,y,yaw))
end
def setVelocity (vel)
......
end
vel est un Command2D classe qui a 3 attributs, est Comparable et définit + , fondamentalement, est une classe pratique pour moi de gérer ces 3 attributs, donc je veux l'utiliser en interne dans ma bibliothèque (vous ne voulez pas de les rendre privés, soit de leur donner des noms bizarres).
Mais Ruby semble ne garder que la dernière setVelocity même lorsque le nombre de paramètres est différent. donc, quand je l'appelle setVelocity avec 3 paramètres de dire que j'ai besoin d'appeler cette méthode avec un seul paramètre.
source d'informationauteur Jordi
Vous devez vous connecter pour publier un commentaire.
Ruby n'a pas vraiment de soutien de la surcharge.
Cette page donne plus de détails et une solution de contournement. En gros, vous créez une méthode unique avec un nombre variable de paramètres, et de les traiter de manière appropriée.
(Je serais personnellement recommander écrit une méthode pour reconnaître les deux "faux surcharges" et ensuite une méthode pour chaque surcharge, avec des noms différents, reflétant les différents paramètres).
Sinon, il suffit de fournir des noms différents pour commencer 🙂
Juste pour comparaison, voici comment je pourrais résoudre:
Utiliser attr_accessor pour ajouter des attributs et vous obtiendrez des getters et setters automatiquement.
Vous pouvez également utiliser attr_reader ou attr_writer pour obtenir en lecture seule ou en écriture seule attributs.
Vous pouvez maintenant définir et obtenir la valeur de cet attribut comme ceci:
Si vous souhaitez ajouter des méthodes pour définir l'attribut, sur la base de certains paramètres, utilisez un nom reflétant le type de saisie sont attendus:
Vous pouvez probablement trouver beaucoup mieux son nom dans cette affaire, mais je ne sais pas ce que votre xy et lacet vraiment dire, dans votre contexte.