Utilisation de ce format de code:
$ ruby country_name.rb Code not specified $ ruby country_name.rb ca Not match $ ruby country_name.rb us United States $ ruby country_name.rb mx Mexico
3 Réponses :
Premièrement, nommez le chemin de votre code comme pays_name.rb code>. Ensuite, définissez pays.name code> comme:
Autre option, vérifiant le code avant d'appeler la méthode:
class Country
# no changes here
def self.name(code)
return "Not found" unless CODE_TO_NAME.has_key? code
CODE_TO_NAME[code]
end
end
code = ARGV[0]
abort("Code not specified") unless code
puts Country.name(code.to_sym)
Ce n'est pas un "code non fourni", mais "code non spécifié".
Donc, il y a trois cas, nous devons nous soucier de:
Dans le premier cas, dans le second cas, indexation dans Dans le troisième cas, le code que nous obtenons de la ligne de commande sera une chaîne argv.first code> sera nil code>. Nous pouvons ajouter une touche nil code> sur code_to_name code> avec le message approprié. P> code_to_name code> renvoyer la valeur par défaut, nous pouvons donc définir la valeur par défaut sur le message approprié. P> code>, pas un symbole code>, donc si nous modifions les touches dans code_to_name code> à String code> S, nous pouvons indexer dans code_to_name code> directement sans aucun conversions. p>
Nous ne fournissons pas de solutions d'examen / d'entretien ici, mieux vous essayez de poster votre problème, la réponse sera fournie simplement pour décrire leur intelligence et obtenir une amélioration, mais pas pour votre aide directe
Je suis désolé. Je ne suis pas sûr de comprendre. Je suis assez nouveau pour empiler débordement.
FYI, "pas le match" est une sorte d'anglais cassé. (Pas sûr s'il est typique de l'énancrish japonais.) Il devrait être soit "ne correspond pas" ni "pas de match". Mais j'espère que vous ne changez pas la question puisque vous avez déjà des réponses.