在编写一些代码时,我注意到long(原始)数据类型不需要后缀l或L。我的代码可以编译并正常运行。谁能解释这个背后的逻辑?提前致谢..
long l=435; //Complies and Run fine
Run Code Online (Sandbox Code Playgroud)
当您这样做时:
long l=435;
Run Code Online (Sandbox Code Playgroud)
编译器将其视为int,然后,由于您给定的数据类型为long,因此它会自动转换为long数据类型。因此,您不需要后缀。
但是,如果您尝试使用非常长的数字,例如:
long l = 9999999999;
Run Code Online (Sandbox Code Playgroud)
编译器将引发错误(整数太大)。因为,它将尝试将其视为an int,但是它太大而不能成为an int。因此,在这里,您需要一个后缀。如果您这样做:
long l = 9999999999L;
Run Code Online (Sandbox Code Playgroud)
然后它将编译。
简单地说,仅适用于long数据类型的数字需要后缀。