为什么可以';一元运算符直接对Java中的值进行操作?
我不想这么做,但我想知道为什么一元运算符不能直接处理Java中的值 为什么为什么可以';一元运算符直接对Java中的值进行操作?,java,unary-operator,Java,Unary Operator,我不想这么做,但我想知道为什么一元运算符不能直接处理Java中的值 为什么result++工作但结果=0++不工作 在文档中我能找到的只是一元运算符只需要一个操作数,但操作数没有明确的定义,它似乎可以是变量或值。并不是一元运算符不起作用——例如,(+(-5))就可以了 但是++不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量 From(后缀增量运算符++) 后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误 请注意,这也不仅仅是文字。你不能这样做: Str
result++如果int result=0,则代码>工作代码>但结果=0++代码>不工作
在文档
中我能找到的只是一元运算符只需要一个操作数
,但操作数没有明确的定义,它似乎可以是变量或值。并不是一元运算符不起作用——例如,(+(-5))就可以了
但是++
不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量
From(后缀增量运算符++)
后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误
请注意,这也不仅仅是文字。你不能这样做:
String x = "foo";
x.length()++; // wrong!
因为同样,x.length()
没有被归类为变量
但您可以使用其他一元运算符,例如
String x = "foo";
int y = -x.length(); // Unary - operator... that's fine
并不是一元运算符不起作用——例如,(+(-5))就可以了
但是++
不仅仅计算一个值,它的目的是增加一个变量。0不是一个变量
From(后缀增量运算符++)
后缀表达式的结果必须是可转换(§5.1.8)为数值类型的变量,否则会发生编译时错误
请注意,这也不仅仅是文字。你不能这样做:
String x = "foo";
x.length()++; // wrong!
因为同样,x.length()
没有被归类为变量
但您可以使用其他一元运算符,例如
String x = "foo";
int y = -x.length(); // Unary - operator... that's fine