Juste pour info, "times" n'est pas un mot clé, c'est une méthode appartenant aux nombres entiers. Plus précisément, c'est un itérateur. On trouve aussi des itérateurs "upto" et "downto" permettant de faire des "for", par exemple 3.upto(5).
Utiliser des méthodes appartenant à ce qu'on considère généralement comme des "types de base" peut paraître bizarre, mais ça donne généralement un moyen assez élégant de faire du code autodocumenté. Et une fois qu'on est habitué aux itérateurs, ce genre d'écriture devient très naturel. On apprécie justement de ne pas avoir besoin d'un mot clé pour faire tout ça (le mot clé while existe quand même pour les cas plus compliqués).
Dans un autre style, mais toujours montrant comment on utilise des méthodes pour avoir du code autodocumenté, rails fournit plein d'aides supplémentaires. On peut écrire:
3.gigabytes (renvoie une quantité de bytes)
3.months (renvoie une durée en secondes)
3.months.from_now (renvoie une date)
L'enchaînement months.from_now fonctionne parce que Fixnum#from_now crée une date à partir d'un nombre qui est interprété comme un nombre de secondes. Je trouve ça élégant.
[^] # Re: Célèbre ?
Posté par Yusei (Mastodon) . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 4.
Utiliser des méthodes appartenant à ce qu'on considère généralement comme des "types de base" peut paraître bizarre, mais ça donne généralement un moyen assez élégant de faire du code autodocumenté. Et une fois qu'on est habitué aux itérateurs, ce genre d'écriture devient très naturel. On apprécie justement de ne pas avoir besoin d'un mot clé pour faire tout ça (le mot clé while existe quand même pour les cas plus compliqués).
Dans un autre style, mais toujours montrant comment on utilise des méthodes pour avoir du code autodocumenté, rails fournit plein d'aides supplémentaires. On peut écrire:
3.gigabytes (renvoie une quantité de bytes)
3.months (renvoie une durée en secondes)
3.months.from_now (renvoie une date)
L'enchaînement months.from_now fonctionne parce que Fixnum#from_now crée une date à partir d'un nombre qui est interprété comme un nombre de secondes. Je trouve ça élégant.