Groovy入门-语法规范

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013803499/article/details/54615022

直接来源于Java语法的特性
1.关键字于语法
2.类,接口,属性,方法的定义
3.使用new创建对象
4.包导入机制
5.try/catch/finally异常处理机制
6.运算符,表达式,复制
7.控制结构
8.代码注释

groovy自动导入如下包
groovy.lang.*
groovy.util.*
java.lang.*
jaav.util.*
java.util.regex.*
java.net.*
java.io.*
java.math.BigDecimal
java.math.BigInteger

数值
Groovy的一切都是对象。可以自动装箱与拆箱。
整数123,-12,0都是Integer类的对象
def price = 100 < == > Integer price = new Integer(100)
语句可以不用’;’结尾
浮点数1.5,-3.14都是BigDecimal类的对象
数值类型:
Integer
Long
Float
Double
java.math.BigDecimal
java.math.BigInteger

GDK数值方法

def store = ''
10.times{ store += 'X' }  assert store == 'XXXXXXXXXX'

store = ''
1.upto(5){ number -> store += number }  assert store == '12345'

store = ''
2.downto(-1){ number -> store += number + ' ' }  assert store == '2 1 0 -1 -2'

store = ''
0.step(0.5,0.1){ number -> store += number + ' ' }  assert store == '0 0.1 0.2 0.3 0.4 0.5'

表达式与运算符

基于方法的运算符(参考英文版Groovy in Action 第64页)

assert 4+3 == 7                 //4.plus(3)
assert 4-3 == 1                 //4.minus(3)
assert 4*3 == 12                //4.multiply(3)
assert 4%3 == 1                 //4.mod(3)
assert 4**3 == 64               //4.power(3)
assert 4/3 == 1.3333333333      //4.div(3)
assert 4.intdiv(3) == 1         //整除
assert !(4 == 3)                //!(4.equals(3))
assert 4 != 3                   //!4.equals(3)
assert !(4 < 3)                 //4.compareTo(3) < 0
assert !(4 <= 3)                //4.compareTo(3) <= 0
assert 4 > 3                    //4.compareTo(3) > 0
assert 4 >= 3                   //4.compareTo(3) >= 0
assert 4 <=> 3 == 1             //4.compareTo(3)
assert 4 <=> 8 == -1            //4.compareTo(8)
assert 4 <=> 4 == 0             //4.compareTo(4)  

a == b 等价 a.equals(b)
Groovy 的 “==”就是Java的 “==”
Groovy 支持操作符重载,重载运算符对应的方法就是操作符重载
<< 操作符被重载,以支持向集合添加项
?:安全引用操作符(防止NullPointerException),在方法调用前面添加一个?就相当于在调用前面放了一个条件,可以防止在null对象上调用方法。 ?操作符时刻都非常有用,可以极大地减少条件语句。

字符串GString简介

def str = ‘hello\nlxt008’; prin str
//在同一行放多条语句‘;’不能少
def name = ‘lxt008’
print “\thello name\t\nprintaaabbbGStringdefname=lxt008printaaa\tbbb {name}
“”“”“”
${name} 会解释为lxt008
GString简化了编写多行字符串和进行运行时替换功能

Groovy 方法一
1.可以直接使用Java的方法
2.变量作用域与Java方法类似
3.可以使用动态类型或者静态类型
4.可以省略return,默认返回最后语句的值

def welcome1(name){
  println "Hello ${name"
}
welcome1('lxt008')
//输出:Hello lxt008

Groovy 方法二

def welcome2(name,welcomeStr='Welcome'){
    println "${welcomeStr} ${name}"
}
welcome2('lxt007')    //输出:Welcome lxt007
welcome2('lxt008','Good')    //输出:Good lxt008

方法参数是传值调用

def printName(name){
    println "Name (at entry): ${name}"
    name = 'lxt001'
    println "Name (after assignment): ${name}"
}
def tutor = 'lxt008'
printName(tutor)                //Name (at entry): lxt008
                                //Name (at assignment): lxt001
println "Tutpor: ${tutor}"      //输出:Tutor:lxt008

break 与 continue 与 Java一样
if 的条件除了是布尔值外,也可以是对象,如对象是空则条件为false,否则为true
**读取标准输入:
def name = new BufferedReader(new InputStreamReader(System.in)).readLine()
System.in.readLine()已经被废除,使用出错**

猜你喜欢

转载自blog.csdn.net/u013803499/article/details/54615022