2017-07-03 2 views
-1

Ich habe die neue Funktion des JDK 7 gesehen.Warum lange Datentyp Unterstützung Unterstrich (_) in jdk 7?

Gibt es den langen Datentyp Unterstützung der Underscore ("_")? Was ist andere Verwendung der Funktion?

für ex.

lang l = 123_456_789L;

+0

Jeder numerischen Typ unterstützt es in Java 7 (oder neuer). Was genau ist deine Frage? – UnholySheep

+0

Meine Frage ist warum? Was nutzt diese Funktion? –

+0

Es macht Zahlen leichter zu lesen? Oder halten Sie '953184531324L' für leichter lesbar als' 953_184_531_324L'? – UnholySheep

Antwort

0

nicht nur sehnt sich wie erklärt 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; 

Sie sogar

tun können
int x = 5_______2; 

aber warum? oracle möchte die Lesbarkeit des Codes verbessern.

0

Es ist nur der Lesbarkeit wegen. Wie docs sagt:

Diese Funktion ermöglicht Ihnen zum Beispiel, Zifferngruppen in numerischen Literalen zu trennen, die die Lesbarkeit Ihres Codes verbessern können.

Wenn Ihr Code beispielsweise Zahlen mit vielen Ziffern enthält, können Sie einen Unterstrich verwenden, um Ziffern in Dreiergruppen zu trennen, ähnlich wie Sie ein Trennzeichen wie ein Komma oder ein Leerzeichen als Trennzeichen verwenden würden .

Das folgende Beispiel zeigt andere Möglichkeiten, wie Sie den Unterstrich in Zahlenliterale verwenden können:

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; 
Verwandte Themen