有趣的布尔语法

时间:2013-04-04 22:39:58

标签: java boolean

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

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

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

    return added;
}

虽然我明白这是做什么的,但是 - 如果它至少超过一次(如果后来的元素失败),则不要将其更改为false。但这究竟意味着什么呢。怎么读boolean中是否有类似的小工具?

2 个答案:

答案 0 :(得分:2)

|=运算符与此相同:

added = ( added | add(t) );

答案 1 :(得分:2)

这是一个按位 - 或与等号组合。

因此,如果之前已将其设置为true(即1),如果您按位,或者是真或假(10),那么,' ll总是返回true(1)为0 OR 1 = 11 OR 1 = 1

实际上与:

相同
added = (added | add(t));