如果下面两者有任何不同,我很困惑。我认为他们做的是同样的事情,但是当我编译它时,它们似乎是不同的。先感谢您。
if(hash[s.charAt(leftIdx)]>=0) {
hash[s.charAt(leftIdx)]++;
// do other things
}
if(hash[s.charAt(leftIdx)]++>=0) {
// do other things
}
答案 0 :(得分:2)
重构以删除后缀运算符,第一个等同于:
properties: {
imgsrc: {
type: String,
value: function() {return this.resolveUrl('img/12.jpg')}
}
}
第二个(假设你的if(hash[s.charAt(leftIdx)] >= 0) {
hash[s.charAt(leftIdx)] += 1;
// do other things
}
成员是整数)等同于:
hash
postfix int tmp = hash[s.charAt(leftIdx)];
hash[s.charAt(leftIdx)] += 1;
if(tmp >= 0) {
// do other things
}
运算符返回预先递增的值,然后将其作为副作用递增。因此,第二个示例中的++
在其条件中使用了预先递增的值(由上面的if
表示)。