Puis-je dire une méthode Ruby de s'attendre à un paramètre spécifique de type?
def doSomething(value)
if (value.is_a?(Integer))
print value * 2
else
print "Error: Expected integer value"
exit
end
end
Puis-je dire une méthode Ruby qu'un certain paramètre devrait être un Entier, sinon crash? Comme Java.
- Jetez un oeil à blog.rubybestpractices.com/posts/gregory/.... Il explique ce qui est connu comme "duck typing" et ce que nous voyons que des avantages à elle.
Vous devez vous connecter pour publier un commentaire.
Non, vous ne pouvez pas. Vous ne pouvez faire ce que vous êtes déjà en train de faire: vérifier le type de vous-même.
Je suis en retard à la fête, mais je voulais ajouter quelque chose d'autre:
Vraiment un concept important en Ruby, c'est Duck-Typing. L'idée derrière ce principe est que vous n'avez pas vraiment sur les types de variables, autant qu'ils peuvent en faire ce que vous voulez faire avec eux. Ce que vous voulez dans votre méthode est d'accepter une variable qui répond à (*). Vous n'avez pas de soins sur le nom de la classe autant que l'instance peut être multiplié.
À cause de cela, en Ruby, vous verrez de plus en plus souvent la méthode
#responds_to?
que#is_a?
En général, vous ferez l'assertion de type uniquement lors de l'acceptation de valeurs à partir de sources externes, telles que la saisie de l'utilisateur.
Vous pouvez soulever une Exception à tout moment, arbitrairement, si vous le jugez nécessaire.
Si oui ou non vous vraiment veux faire c'est une question distincte. 🙂
ArgumentError
qu'un simpleRuntimeError
.Je voudrais suggérer une relance à moins que le type de match au début de la méthode
C'est générer une erreur et de sortie, à moins que la valeur est un
Integer