4 votes

Ruby Concept - Rendement

Je travaille actuellement sur les concepts de Ruby. Venant d'une formation VB, il y a certains concepts que je ne saisis pas encore tout à fait. Le rendement en fait partie. Je comprends comment cela fonctionne d'un point de vue pratique, mais je ne vois pas l'importance de Yield, ni quand et comment je pourrais l'utiliser à son plein potentiel.

4voto

Chris G. Points 2627

Le rendement fait partie d'un système plus large de fermetures dans Ruby. C'est une partie très puissante du langage et vous la trouverez dans chaque script Ruby que vous rencontrerez.

http://www.robertsosinski.com/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/

1voto

Jonas Elfström Points 16453

Il est bon de comprendre comment fonctionne le rendement, mais je l'utilise rarement et j'ai pensé qu'il en était de même pour d'autres. Les commentaires de cette réponse pourraient indiquer le contraire.

L'instruction yield de Ruby transfère le contrôle à un bloc donné à la méthode. Une fois le bloc terminé, le contrôle est rendu à la méthode et celle-ci continue d'exécuter l'instruction qui suit directement l'instruction yield.

Voici une variante de la séquence de Fibonacci trop souvent utilisée

def fib(upto) 
  curr,  succ = 1, 1 
  while curr <= upto
      puts "before"
      yield curr
      puts "after"
      curr, succ = succ, curr+succ 
  end 
end

Vous appelez ensuite la méthode avec quelque chose comme

fib(8) {|res| puts res}

et le résultat sera

before
1
after
before
1
after
before
2
after
before
3
after
before
5
after
before
8
after

0voto

Felipe Lima Points 2346

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X