[英]+++x unexpected type required: variable found: value
這可能是一個愚蠢的問題,但我不知道為什么會這樣。我寫了下面的代碼片段。
public class Test {
public static void main(String... str)
{
int y = 9;
int z = +++y; //unexpected type required:variable found:value
int w = +-+y; // Not Error
}}
為什么+ - + y有效,+ + +不是嗎?
+++y
被解釋為++
運算符,后跟+y
。
+y
與-y
一樣有效,但++
運算符期望變量操作(它不能遞增值), +y
被認為是一個值(執行了加法運算)。
+-+y
為0 + (0 - (0 + y))
,並且它沒有增量或減量運算符,因此即使操作將整個表達式轉換為值(而不是變量引用),它也具有沒有效果。
在Java中,字符+++
表示++
,后跟+
,它們是兩個不同的運算符。 另一方面,沒有運算符+-
,所以字符+-+
表示+
,然后是-
,然后是+
。
如果你想玩這些運算符,還有~
,這是二進制的 。 您可以使用運算符+
, -
和~
構建任意鏈,只要它們不包含++
或--
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.