noneMatch
和anyMatch
都是短路流操作。这意味着当结果已知时,他们将停止处理输入。
在您的情况下,它们在找到与传入的谓词匹配时都会停止。唯一的区别是noneMatch
将在匹配中返回false
,而{{1} }将返回anyMatch
。您对true
取反的结果使这两个表达式在逻辑上相等。
假设相同的anyMatch
和相同的list
,任何性能差异都可以忽略不计。两种方法都会在第一个匹配项(如果有的话)上短路,如果没有一个真正匹配项,则会遍历整个列表,并且一个否定运算符也不会起作用。