Groovy 特殊语法
来源:互联网 发布:java工程师是干什么的 编辑:程序博客网 时间:2024/06/06 13:14
Groovy 特殊语法
首先申明下,本文为笔者学习《Groovy 程序设计》的笔记,并加入笔者自己的理解和归纳总结。
1、多赋值
(1) Groovy可以返回一个数组,然后赋值给左侧表达式。左侧表达式必须以逗号分隔,放在圆括号中。- def splitName(fullname) {
- fullname.split(',')
- }
- (firstName, lastName) = splitName("Michael,Jordan")
- print "$lastName, $firstName" // Jordan, Michael
交换两个变量的值。
- name1="Michael"
- name2="James"
- (name1, name2) = [name2, name1]
- println "$name1, $name2" // James, Michael
- (name1, name2, name3) = ["Michael", "James", "Kavin", "Steven"]
- println "$name1, $name2, $name3" // Michael, James, Kavin
- (name1, name2, name3) = ["Michael", "James"]
- println "$name1, $name2, $name3" // Michael, James, null
2、相等操作
(1) Groovy将==映射到equals方法,而is方法映射到==方法。- name1="Michael"
- name2=new String("Michael")
- name3=name2
- println name1 == name2
- println name2 == name3
- println name1.is(name2)
- println name2.is(name3)
true
true
false
true
- class A {
- boolean equals(other) {
- println "equals called"
- true
- }
- }
- new A() == new A()
equals called
(2) 如果实现了Comparable接口,==会被映射到该类的compareTo()方法。
- class A implements Comparable {
- boolean equals(other) {
- println "equals called"
- true
- }
- int compareTo(other) {
- println "compareTo called"
- return 1
- }
- }
- new A() == new A()
compareTo called
3、可选形参
Groovy中方法和构造器的形参是可选的。(1) 设置默认参数。
- def percent(x, max=100.0) {
- x/max*100 + "%"
- }
- println percent(23) // 23.00%
- println percent(47, 100) // 47.00%
- println percent(31, 1000) // 3.100%
- def log(msg, String[] details) {
- println "$msg - ${details}"
- }
- log "msg" // msg - []
- log "msg", "detail1" // msg - [detail1]
- log "msg", "detail1", "detail2" // msg - [detail1, detail2]
- def log(msg, String... details) {
- println "$msg - ${details}"
- }
- log "msg" // msg - []
- log "msg", "detail1" // msg - [detail1]
- log "msg", "detail1", "detail2" // msg - [detail1, detail2]
- log "msg", ["detail1", "detail2"] as String[] // msg - [detail1, detail2]
4、安全导航操作符
安全导航操作符(?.)可以检查引用是否为空- def upperCase(str) {
- str?.toUpperCase()
- }
- println upperCase("hello world!") // HELLO WORLD!
- println upperCase(null) // null
5、文件File
Groovy中是File类来处理文件,大大简化了操作。- new File(fileName).text // 直接得到文件内容
- new File(fileName).eachLine {
- println it
- }
- println new File(fileName).filterLine {
- it =~ /File/
- }
阅读全文
0 0
- Groovy特殊语法
- Groovy 特殊语法
- groovy语法
- Groovy基础语法
- Groovy的基础语法
- Groovy基本语法(1)
- Groovy基本语法(2)
- Groovy基本语法(3)
- Groovy常用语法总结
- Groovy常用语法总结
- Groovy的基础语法
- 转载Groovy基本语法
- Groovy常用语法总结
- groovy语法篇介绍
- groovy语法基础
- Groovy 简要语法
- Groovy的基础语法
- groovy语法基础
- 无缝滚动小练习—animation
- 如何去自定义一个Toast?
- angularjs 图片上传 回显
- Android 使用Scheme实现从网页启动APP
- [leetcode]617. Merge Two Binary Trees
- Groovy 特殊语法
- 两个栈实现一个队列功能
- Android程序真退出与假退出后台运行详解
- 获取屏幕宽高的四种方法
- Groovy 属性访问
- iOS封装.a文件
- Java高并发,如何解决,什么方式解决
- Kotlin 可见性修饰符
- Vue前后台交互