2013-07-29 13 views
14

Czytałem, że w Java7 możemy teraz napisać ten zabawny oświadczenie:Znaczenie 0_0 w Javie 7

public static boolean isZero(int O_O){ 
    return O_O == 0_0; 
} 

Pytanie brzmi: Co dokładnie 0_0 oznacza w tym kontekście?

+8

Czy to próbował? –

+2

http://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html –

+0

Dostaję retrospekcje do Fortran, które zezwalają na spacje w liczbach dla "czytelności" –

Odpowiedz

42

Podkreślenie znaków w literałach numerycznych jest dozwolone w Javie 7 tylko dla celów czytelności. Od javadocs:

w Java SE 7 i później, dowolną ilość znaków podkreślenia (_) może pojawić się w dowolnym miejscu pomiędzy cyfr w numerycznym dosłowne. Ta funkcja umożliwia, na przykład, do oddzielnych grup cyfr numerycznych literałów, które mogą poprawić czytelność kodu

+8

Wow, popatrz na ten numer! – iamnotmaynard

+0

O co do cholery! +1 ode mnie X_X – Bart

+0

Kiedy widzę wspinaczkę numerową, nie mogę się oprzeć dodaniu – arynaq

8

podkreślenia są valid w liczbach, o ile nie są one pierwszym znakiem, ostatnia znaków lub bezpośrednio po każdej stronie 0x, 0b itp. Zasadniczo między cyframi. Na przykład: 4_294_967_296 jest bardziej standardowym zastosowaniem.

Twój kod sprawdzi, czy przekazana int jest równa zero.

Jednak nie jest to liczba dziesiętna, ale raczej ósemkowa. 0_12 nie jest równy 12 ani 1_2. Zamiast tego pierwsze jest równe 10 w systemie dziesiętnym.

Literały binarne zostały dodane w Javie 1.7.

15

W Javie 7 można dodać podkreślenia w celu zwiększenia czytelności numeru literałów:

int oldMillion = 1000000; 
int newMillion = 1_000_000; 

Jest to szczególnie przydatne w przypadku danych binarnych:

byte oldMax = 0b01111111; 
byte newMax = 0b0111_1111; 
Powiązane problemy