美文网首页
Groovy 类的更多信息

Groovy 类的更多信息

作者: zhaoyubetter | 来源:发表于2017-11-02 13:41 被阅读11次

    操作符重载

    在Groovy中所有事物都是一个对象,如:整数字面值123实际上就是类Integer的一个实例;此对象实例可用于比如:123+456这种,类似于传统运算符一样;而实际上这个表达式是调用 123.plus(456)的简写形式;

    对于预定义的操作符,Groovy支持操作符重载,每个操作符被映射到一个特定的方法名,如上: + 操作符被映射到plus方法;

    原理:每个操作符都会映射到一个标准的方法;

    我们也可在自己的类中实现这些方法,可以利用重载的优势来编写自己的Java或者groovy对象;

    groovy中操作符所映射到的方法(举例):

    操作符 方法 说明
    a+b a.plus(b) 加法
    a-b a.minus(b) 减法
    a*b a.multiply(b) 乘法
    a/b a.divide(b) 除法

    操作符重载的示例代码

    class Vector {
    
        private def values = []
    
        Vector(v) {
            this.values = v
        }
    
        def plus(vec) {
            def res = []
            def size = this.values.size()
            def vecSize = vec.values.size()
    
            if (size == vecSize) {
                for (index in 0..<size) {
                    res << (values[index] + vec.values[index])
                }
            }
    
            return res
        }
    
        static void main(args) {
            def vec1 = new Vector([1, 2, 3, 4])
            def vec2 = new Vector([10, 11, 12, 13])
            println("vec1 + vec2 = ${vec1 + vec2}")
        }
    }
    

    相关文章

      网友评论

          本文标题:Groovy 类的更多信息

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