def add(*numbers)
numbers.inject(0) { |sum, number| sum + number }
end
def subtract(*numbers)
current_result = numbers.shift
numbers.inject(current_result) { |current_result, number| current_result - number }
end
def calculate(*arguments)
# if the last argument is a Hash, extract it
# otherwise create an empty Hash
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
options[:add] = true if options.empty?
return add(*arguments) if options[:add]
return subtract(*arguments) if options[:subtract]
end
les options sont a la place d'un arguments pour moduler l'action de la fonction.
Ici on va utiliser la notion d' "option".
Il ne s'agit pas de modifier les parametres de l'argument mais de transformer les arguments en meta-parametres.
Cette methode merite un ample commentaire:
- Premierement. "if the last argument is a Hash extract it". Je ne comprends pas ce que ca a de fondamental dans l'exercice. Il aurait suffi d' ajouter directement {}, en ecrivant une methode qui fait ca
_ Deuxiemem
Ici on va utiliser la notion d' "option".
Il ne s'agit pas de modifier les parametres de l'argument mais de transformer les arguments en meta-parametres.
Cette methode merite un ample commentaire:
- Premierement. "if the last argument is a Hash extract it". Je ne comprends pas ce que ca a de fondamental dans l'exercice. Il aurait suffi d' ajouter directement {}, en ecrivant une methode qui fait ca
_ Deuxiemem
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.