美文网首页
Groovy操作符重载

Groovy操作符重载

作者: zheting | 来源:发表于2018-01-01 11:37 被阅读44次

  你可以使用Groovy实现操作符重载, 那么 Groovy是怎么做到的了?其实非常简单, 事实上 —每个运算符都有一个标准的映射方法.因此, 在Java中你可以使用这些方法,对于Groovy 你 可以使用操作符或操作符对应的方法,这两者任意一种.

下面的表格描述了groovy中的操作符所映射到的方法:


操作符和方法的对应

你可以通过添加映射方法来为自己的类提供操作符, 像 plus( ) 对应+. 这里将展示一个操作符重载:

class ComplexNumber {
    def real, imaginary
    def plus(other) {
        new ComplexNumber(real: real + other.real,imaginary: imaginary + other.imaginary)
    }
    String toString() {
        "$real ${imaginary > 0 ? '+' : ''} ${imaginary}i" }
    }

c1 = new ComplexNumber(real: 1, imaginary: 2)
c2 = new ComplexNumber(real: 4, imaginary: 1)
println c1 + c2

因为你ComplexNumber类中添加了plus( ) 方法,Groovy 允许你使用 + 获取两个复数相加 的结果 ,输出:5 + 3i

相关文章

  • 2.7 操作符重载

    Groovy 支持操作符重载,可以巧妙地应用这一点来创建 DSL(领域特定语言)。 Java 是不支持操作符重载的...

  • Groovy操作符重载

      你可以使用Groovy实现操作符重载, 那么 Groovy是怎么做到的了?其实非常简单, 事实上 —每个运算符...

  • groovy-运算符

    Groovy操作符 Groovy支持运算符重载,各种运算符被映射到普通的java对象的方法调用,这就使得开发者可以...

  • C++操作符重载

    重载操作符的限制 可以重载的操作符 不能重载的算符 操作符重载的语法形式 重载赋值操作符 重载+-*/运算操作符操...

  • C++ 操作符重载

    重载算数操作符 重载操作符[] 重载关系操作符 重载类型转换操作符 重载输入输出操作符 引例 用一个类Fracti...

  • Swift 十二讲 第九讲 操作符重载和泛型

    1. 操作符重载 Swift允许对操作符进行重载,也允许自己定义操作符。这个功能非常强大也很实用。操作符重载有两种...

  • C++中的操作符重载

    操作符重载 C++中的重载能够扩展操作符的功能 操作符的重载以函数的方式进行 本质:用特殊形式的函数扩展操作符的功...

  • Groovy 类的更多信息

    操作符重载 在Groovy中所有事物都是一个对象,如:整数字面值123实际上就是类Integer的一个实例;此对象...

  • C++重载操作符

    什么叫重载操作符?这要先说什么是操作符,其实最简单的:+、-、*、/、<<就都是操作符,这些也是很常见的重载操作符...

  • 运算符重载(Operator Overloading)

    运算符重载(Operator Overloading) 操作符重载的要点 操作符的通用语法 双目操作符:<左操作数...

网友评论

      本文标题:Groovy操作符重载

      本文链接:https://www.haomeiwen.com/subject/ilftnxtx.html