Groovy中==〜和!=有什么区别?

问题描述 投票:7回答:3

这些有什么区别?

为什么用一个而不是另一个?

def variable = 5
if( variable ==~ 6 && variable != 6 ) {
  return '==~ and != are not the same.'
} else {
  return '==~ and != are the same.'
}
groovy syntax comparison logical-operators
3个回答
15
投票

在groovy中,==~运算符(也称为“匹配”运算符)用于正则表达式匹配。 !=只是一个普通的老常规“不等于”。所以这些是非常不同的。

比照http://groovy-lang.org/operators.html


6
投票

在Java中,!=“不等于”而~是“按位NOT”。你实际上会做variable == ~6

在Groovy中,==~运算符是“正则表达式匹配”。例子是:

  1. "1234" ==~ /\d+/ - >评估为true
  2. "nonumbers" ==~ /\d+/ - >评估为false

3
投票

在Groovy中,您还必须注意除了==~,别名“Match operator”之外,还有=~,别名“Find Operator”和~,别名“Pattern operator”。

所有都解释here

==~结果类型:Boolean / boolean(Groovy中没有原语,一切都不是它看起来!)

=~结果类型:java.util.regex.Matcher

~结果类型:java.util.regex.Pattern

我认为Groovy解释器/编译器可以区分用作Pattern运算符的~和用作按位NOT的~(即它在Java中的用法)通过上下文:前者将始终跟随一个模式,该模式将始终以分隔符括起来,通常是/

© www.soinside.com 2019 - 2024. All rights reserved.