42 votes

Ruby équivalent .fois dans Coffeescript

Quel est le Coffeescript équivalent le plus concis à ce qui suit :

 # ruby    
3.times { puts 'hi' }

?

Le mieux auquel je puisse penser est :

 # coffeescript
for n in [1..3]
  console.log 'hi'

62voto

thejh Points 20901
console.log 'hi' for [1..3]

Pour gérer également correctement 0

 console.log 'hi' for [1..n] if n

Ou avec la magie du prototype :

 Number::times = (fn) ->
  do fn for [1..@valueOf()] if @valueOf()
  return
3.times -> console.log 'hi'

Notez que la deuxième méthode n'est pas recommandée car changer le Number a des effets globaux.

Edit : Modifié selon le commentaire de @BrianGenisio ( .prototype. -> :: )

Edit 2: correction de la gestion de 0, merci @Brandon

33voto

tokland Points 29813

Puisque vous utilisez déjà Underscore.js avec CoffeeScript :

 _(3).times -> console.log('hi')

1voto

matyr Points 4025
console.log 'hi' for[]in length:3

0voto

trushkevich Points 1001

en utilisant lodash :

 _.times 3, -> console.log 'hi'

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