我在编程时,想写一个小于等于的运算符,但当我按等于号时,不小心按住了Shift键,结果打出了加号。这样就生成了 <+ 这个符号。IntelliJ并没有报错,所以我想知道 <+ 表示什么。
我尝试在网上搜索,但没有找到相关信息。
if (Integer.toString(data.getPhoneNumber()).length() <+ 10)
我以为它会给我一个错误或其他什么东西。
我在编程时,想写一个小于等于的运算符,但当我按等于号时,不小心按住了Shift键,结果打出了加号。这样就生成了 <+ 这个符号。IntelliJ并没有报错,所以我想知道 <+ 表示什么。
我尝试在网上搜索,但没有找到相关信息。
if (Integer.toString(data.getPhoneNumber()).length() <+ 10)
我以为它会给我一个错误或其他什么东西。
只是间距让它看起来特别。这是更传统的间距:
if (Integer.toString(data.getPhoneNumber()).length() < +10)
就是
if (Integer.toString(data.getPhoneNumber()).length() < 10)
因为在这段代码中,一元运算符+
应用于一个int
(其中10
是int
)时不起作用。
参见JLS§15.15.3:
15.15.3. 一元加号运算符
+
一元
+
运算符的操作数表达式的类型必须是可转换(§5.1.8)为原始数字类型之一,否则会导致编译时错误。对操作数执行一元数字提升(§5.6.1)。一元加号表达式的类型是操作数的晋升类型。即使操作数表达式的结果是变量,一元加号表达式的结果也不是变量,而是值。
在运行时,一元加号表达式的值是操作数的晋升值。
(他们强调)
+10
与-10
。虽然这可能相当令人困惑,你应该坚持使用10
。 - Zabuzardif (Integer.toString(data.getPhoneNumber()).length() < -10)
然后程序将比较电话号码的length(),以查看它是否小于负10,这对于电话号码的长度来说是没有意义的。
if (Integer.toString(data.getPhoneNumber()).length() < 10)
完全等价,只是没有加上+
。这个加号 没有任何作用。 - luk2302