==〜和!=之间有什么区别?

ksc*_*t90 7 syntax comparison groovy logical-operators

这些有什么区别?

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

def variable = 5
if( variable ==~ 6 && variable != 6 ) {
  return '==~ and != are not the same.'
} else {
  return '==~ and != are the same.'
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*vin 18

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

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


mko*_*bit 6

在Java中,!="不等于",并~"按位非".你真的会这样做variable == ~6.

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

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

  • 在groovy中有一个`== ~`运算符.见http://groovy-lang.org/operators.html (4认同)

mik*_*ent 6

在 Groovy 中,您还必须注意,除了==~别名“匹配运算符”之外,还有=~别名“查找运算符”和~别名“模式运算符”。

一切都在这里解释。

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

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

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

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