Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有'_';签名_Java - Fatal编程技术网

Java 带有'_';签名

Java 带有'_';签名,java,Java,为什么Java数字允许您使用“\u1”符号书写? 这有什么好处?不会使语言复杂化吗 int a= 1_23_4_5_6; double b=34_3.2_3; float f=34_3_4.2_3f; 编辑:是的,我认为“u”符号适用于1_000_000,但适用于34_3_4.2_3f或34_3.2_3?我认为那真的很复杂 这是一个允许您根据自己的意愿对数字进行分组的功能 比如说,不要写 int i = 1000000000; 您可以编写可读性更强的版本 int i = 1_000_000_

为什么Java数字允许您使用“\u1”符号书写? 这有什么好处?不会使语言复杂化吗

int a= 1_23_4_5_6;
double b=34_3.2_3;
float f=34_3_4.2_3f;
编辑:是的,我认为“u”符号适用于1_000_000,但适用于34_3_4.2_3f或34_3.2_3?我认为那真的很复杂

这是一个允许您根据自己的意愿对数字进行分组的功能

比如说,不要写

int i = 1000000000;
您可以编写可读性更强的版本

int i = 1_000_000_000;
发件人:

在JavaSE7及更高版本中,可以使用任意数量的下划线字符(_) 出现在数字文字中数字之间的任意位置

例如,此功能使您能够在中分隔数字组 数值文字,可以提高代码的可读性

快速提示:来自Oracle

那么,它是使可读性变得复杂,还是使代码更易于阅读呢


在实际的应用程序中,在调试/失败时,这可以避免歧义,并帮助开发人员更容易地寻找正确的罪魁祸首。

为了方便起见,使内容更具可读性。例如:
10000000
vs
10000
。从后者你马上可以看到它是1000万,但对于前者你必须数到零才能确定。当然,如果你像在你的例子中那样把下划线放在任意位置是没有用的。我想问一下为什么允许34_3_4.2_3f、34_3.2_3和其他。是的,我认为“u”符号适合1_000_000,但适合34_3_4.2_3f还是34_3.2_3?我认为这真的很复杂。@HəsənCəfərov,因为你可能不只是想把上千个位置分开。例如,您可以将IPv4地址中的八位字节分开,用二进制编写:
0b0000000\uu11111111\u11110000\u00001111
。与其从语言角度限制用例,不如更容易在全局范围内使用
,并相信它只以有意义的方式使用。只需给出相应的JLS参考:Java(以及一般的高级语言)允许编写可读且简单的代码,不是为了防止写不可读的代码
允许像
1\u 000\u 000
这样的事情-防止程序员滥用这是程序员的工作,而不是Java。出于大致相同的原因,也可以使用
10/5/2
而不是使用常量
1
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;