0

我最近遇到了一些奇怪的事情。考虑以下方法:

public boolean addAll(Collection<T> col) {
    boolean added = false;

    for(T t : col)
        added |= add(t);

    return added;
}

虽然我知道这是要做什么,但如果它至少超过一次(如果后面的元素失败),那就不要将其更改为 false。但这实际上意味着什么。怎么读的。有没有类似的小工具boolean

4

2 回答 2

2

|=运算符等价于:

added = ( added | add(t) );
于 2013-04-04T22:42:23.663 回答
2

它是按位或与等号组合。

因此,如果它之前已设置为 true (ie 1),如果您按位或 true 或 false ( 1or 0) 使用它,您将始终返回 true ( 1) as 0 OR 1 = 1and 1 OR 1 = 1

它实际上与以下内容相同:

added = (added | add(t));
于 2013-04-04T22:43:12.230 回答