62 votes

Que signifie le trait de soulignement dans les nombres littéraux ?

Qu'est-ce que ça veut dire ?
0.0..10_000.0

1 votes

Ce que vous avez là est un Range de 0.0 a 10000.0 .

1 votes

Egalement identique à (0.0)..(10_000.0) dans ce cas la gamme "0 à 10_000".

101voto

Kyle Heironimus Points 3015

Les underscores sont ignorés. Vous pouvez les mettre pour les rendre plus lisibles.

3 votes

Mais seulement si c'est un soulignement, deux d'entre eux soulèvent une erreur. Je ne sais pas si ça a toujours été comme ça ou seulement dans les versions récentes :)

0 votes

J'adore le rubis, ces petits détails sont tellement géniaux.

0 votes

Pourquoi c'est génial ? C'est un peu méchant ?

14voto

zoul Points 51637

C'est juste une commodité syntaxique pour séparer les milliers :

$ ruby -e 'puts 1_000 + 1_000_000'  #=> 1001000

0 votes

C'est une question Ruby, alors pourquoi pas un exemple Ruby ?

4 votes

Je ne connais pas Ruby, mais j'ai pensé que c'était un pari sûr étant donné l'inspiration de Ruby avec Perl. Vous êtes le bienvenu pour modifier la réponse.

9voto

CCD Points 116

C'est un objet de la Gamme, du type a..b

Dans ce cas, il vous donne les nombres de 0 à 10 000 sous forme de flottants.

le trait de soulignement '_' est ignoré et utilisé pour des raisons de lisibilité. Ainsi, 10_000 est équivalent à 10 000.

Achetez en ajoutant .0 à chaque partie de la plage, les nombres seront considérés comme des flottants au lieu d'entiers, et vous ne pourrez donc pas itérer sur la plage (la méthode each lèvera une exception).

0voto

Lichtamberg Points 6221

En fait, toutes les autres réponses sont fausses.

~~

_ n'est pas ignoré, essayez-le avec 0_50 :

> 1_50
 => 150
> 0_50
 => 40

YEAAAAAAH TU VAS FLIPPER SI TU VEUX JUSTE L'UTILISER POUR LES DÉCIMALES :(

~~

En général, il décrit simplement une gamme de nombres, comme CCD le mentionne ci-dessus.

Comme l'a fait remarquer Kyle Heironimus, l'underscore est en fait ignoré.

0 votes

En fait, l'underscore est ignoré. 0_50 est la même chose que 050 avec est 50 octal, ce qui est 40 décimal. Essayez-le en tapant 050 . Veuillez mettre à jour votre réponse.

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