rubymonk prime 6.2 deuxieme exercice

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

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.