groovy - 如何在 Groovy 中重载 in 运算符?

标签 groovy operator-overloading language-features

def array = [1,2,3,4,5]
println 3 in array

版画 true .我需要重载什么才能支持 in对于任何对象?

示例:
class Whatever {
   def addItem(item) {
      // add the item
   }
}

def w = new Whatever()
w.addItem("one")
w.addItem("two")
println "two" in w

我知道我可以将这个类使用的集合设为公开,但我想使用 in反而。

最佳答案

我在 Groovy 邮件列表上询问过。 Here's线程。答案是isCase

class A
{
  def isCase(o) {
    return false;
  }
}

a = new A()
println 6 in a // returns false

关于groovy - 如何在 Groovy 中重载 in 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1582325/

相关文章:

unit-testing - 单元测试 Controller 时无法模拟 Grails 服务方法 - MissingMethodException

javascript - 我可以在 Javascript 中定义自定义运算符重载吗?

lua - Lua 派生的 VM 和语言列表

java - java中的interface和@interface有什么区别?

Elasticsearch 检查对象中是否存在键

java - 在 Groovy 中将整数转换为 boolean 数组

python - __lt__ 实际为列表做了什么

c++ - 在类中重载运算符[],因此它可以从模板类中的数组返回对象

scala - 为什么 Scala 中没有字符串插值?

java - 如何在 Moqui 框架中配置实体外观以禁用检查实体存在