Groovy的操作符重载
来源:互联网 发布:informix默认端口 编辑:程序博客网 时间:2024/05/29 12:31
Groovy的操作符重载
你可以使用Groovy实现操作符重载, 那么 Groovy是怎么做到的了?其实非常简单, 事实上 —每个运算符都有一个标准的映射方法.因此, 在Java中你可以使用这些方法,对于Groovy 你 可以使用操作符或操作符对应的方法,这两者任意一种. 这里一个实例展示操作符重载:
for(i = 'a' ; i < 'd' ; i++) { println i}
你使用’++’操作符来循环’a’—‘c’中的字符.这个’++’操作符映射到String类的next( ) 方法. 上面代码的输出:
a
b
c
我们再来看一个,其他这个JDK1.5的循环在这里也是使用String的 next( ) 方法:
for (i in 'a'..'c' ) { println i }
String类有许多重载操作符, 你会在后面看到. collection类—ArrayList 和Map—也有方便的重 载操作符.假如你想添加一些元素到collection中, 你可以使用 << 操作符,它会转化为 Groovy 为Collection添加的额外方法leftShift( ) ,像这里:
lst = ['hello' ] lst << 'there' println lst
输出:[“hello” , “there” ]
你可以通过添加映射方法来为自己的类提供操作符, 像 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
在某些方面操作符重载使表达式更具表现力. 不过, 通常情况下我并不喜欢操作符重载,因为 它很难被理解.
阅读全文
0 0
- Groovy的操作符重载
- Groovy探索之运算符的重载 一
- Groovy探索之运算符的重载 二
- 2.8Groovy操作符重载(操作符对应一个方法)
- Groovy的文件操作
- 使用Groovy "*“ 操作符
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- 操作符的重载
- Java与Groovy的操作
- Groovy Tip 27 Groovy语言对一些常用操作符的扩展
- Groovy Tip 7 “<<”操作符
- Groovy Tip 15 “*”操作符
- Groovy Tip 17 “*.”操作符
- Groovy语法之操作符
- 1111
- [有修改]Android Studio 添加 Library Project (以Volley为例)
- 配置基于IPv6的单节点Ceph
- js实现新浪微博评论
- Qt5Widgets Application打包发布
- Groovy的操作符重载
- file explore不显示
- JZOJ100047. 【NOIP2017提高A组模拟7.14】基因变异
- BZOJ1455[罗马游戏]
- java--反射机制(转载)
- python学习笔记(3)
- 利用伪元素制作盒子阴影
- js自定义滚动轴
- 从快速幂到dp 优化:矩阵快速幂