今天刷leetcode的时候写下了这样一行代码:
if(hash.get((nums[i])++%2!=0)continue;
然后就报了标题的错误,这涉及到左值和右值的知识点,简单描述:——左值就是值和地址都能够确定的操作数,如变量;右值就是只知道值不知道地址,所以我们在写3=a这样的代码时c语言等就会报错说等号左边应该是左值。
这里的variable和value就对应着左值和右值。
这里get函数以及任何函数的返回值都是右值,而++运算符需要一个左值。同理:a++是正确的,而(a++)++是错误的。