2013-07-29 40 views
14

Tôi đã đọc rằng trong Java7, bây giờ chúng ta có thể viết tuyên bố hài hước này:Ý nghĩa của 0_0 trong Java 7

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

Câu hỏi đặt ra là: không 0_0 có ý nghĩa gì chính xác trong bối cảnh này?

+8

Bạn đã thử chưa? –

+2

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

+0

Tôi nhận được hồi tưởng về Fortran cho phép các khoảng trống bằng số "dễ đọc" –

Trả lời

42

Ký tự gạch dưới trong các chữ số được cho phép trong Java 7 chỉ cho mục đích đọc được. Từ javadocs:

Trong Java SE 7 và sau đó, bất kỳ số lượng ký tự gạch dưới (_) có thể xuất hiện bất cứ nơi nào giữa chữ số trong một chữ số. Tính năng này cho phép bạn , ví dụ, các nhóm riêng biệt của các chữ số trong số literals, mà có thể cải thiện khả năng đọc mã của bạn

+8

Wow, hãy nhìn vào con số đó! – iamnotmaynard

+0

O cái quái gì vậy! +1 từ tôi X_X – Bart

+0

Khi tôi nhìn thấy một con số leo lên, tôi không thể chống lại việc đóng góp – arynaq

8

gạch chân là những valid với số lượng miễn là họ không phải là những nhân vật đầu tiên, cuối cùng ký tự hoặc trực tiếp ở hai bên của 0x, 0b , v.v. Về cơ bản giữa các chữ số.

Ví dụ: 4_294_967_296 là cách sử dụng tiêu chuẩn hơn.

Mã của bạn sẽ kiểm tra xem int có bằng 0 hay không.

Tuy nhiên, đây không phải là số thập phân, mà đúng hơn là một số bát phân. 0_12 không bằng 12 hoặc 1_2. Thay vào đó, giá trị cũ bằng 10 chữ số thập phân.

Các ký tự nhị phân được thêm vào trong Java 1.7.

15

Trong Java 7 bạn có thể thêm dấu gạch dưới để tăng khả năng đọc các chữ số:

int oldMillion = 1000000; 
int newMillion = 1_000_000; 

Nó đặc biệt hữu ích với các dữ liệu nhị phân:

byte oldMax = 0b01111111; 
byte newMax = 0b0111_1111;