2017-07-03 4 views
-1

J'ai vu la nouvelle fonctionnalité du JDK 7.Pourquoi un long type de données supporte-t-il le soulignement (_) dans jdk 7?

Le type de données long supporte le Underscore ("_")? Quelle est l'autre utilisation de la fonctionnalité?

par ex.

long l = 123_456_789L;

+0

Chaque type numérique prend en charge dans Java 7 (ou plus récent). Quelle est exactement votre question? – UnholySheep

+0

Ma question est pourquoi? Quelle est l'utilité de cette fonctionnalité? –

+0

Il rend les nombres plus faciles à lire? Ou considérez-vous que '953184531324L' est plus facile à lire que' 953_184_531_324L'? – UnholySheep

Répondre

0

non seulement désire ardemment comme cela est expliqué here

long creditCardNumber = 1234_5678_9012_3456L; 
long socialSecurityNumber = 999_99_9999L; 
float pi = 3.14_15F; 
long hexBytes = 0xFF_EC_DE_5E; 
long hexWords = 0xCAFE_BABE; 
long maxLong = 0x7fff_ffff_ffff_ffffL; 
byte nybbles = 0b0010_0101; 
long bytes = 0b11010010_01101001_10010100_10010010; 

vous pouvez même faire

int x = 5_______2; 

mais pourquoi? Oracle veut améliorer la lisibilité du code.

0

C'est juste pour des raisons de lisibilité. Comme docs dit:

Cette fonction vous permet, par exemple, à des groupes séparés de chiffres littéraux numériques, ce qui peut améliorer la lisibilité de votre code. Par exemple, si votre code contient des chiffres avec plusieurs chiffres, vous pouvez utiliser un caractère de soulignement pour séparer les chiffres en groupes de trois, comme si vous utilisiez un signe de ponctuation comme une virgule ou un espace comme séparateur .

L'exemple suivant montre d'autres façons que vous pouvez utiliser le trait de soulignement dans les littéraux numériques:

long creditCardNumber = 1234_5678_9012_3456L; 
long socialSecurityNumber = 999_99_9999L; 
float pi = 3.14_15F; 
long hexBytes = 0xFF_EC_DE_5E; 
long hexWords = 0xCAFE_BABE; 
long maxLong = 0x7fff_ffff_ffff_ffffL; 
byte nybbles = 0b0010_0101; 
long bytes = 0b11010010_01101001_10010100_10010010;