/*********
* groovy中Object类型存在隐式转换 可以不必使用as强转
*/
Object munber = 9.343444
def number1 = 2
println munber -
number1
if (number1 <
munber) {
println '转换了'
}
/************
* 测试groovy中空字符串运算
*/
def str1 = "8"
def str2 = "-1"
def str3 = "*2"
GroovyShell shell =
new GroovyShell()
println shell.evaluate(str1 +
str2)
println shell.evaluate(str1 +
str3)
/**
* 测试字符串
*/
def str5 = 'java'
def str6 = 'java '
println str5 ==
str6
println str5.trim() ==
str6.trim()
/****
* 测试运算符号
*/
def num = 2
def num1 = 3
println num <<
num1
/****************
* 测试 进程
*/
println 'cmd /C dir'
.execute().text
/**************
* 安全导航操作符的使用
* ?. 操作符只有对象引用不为空时才会分派调用
*/
def str7 =
null
def str8 = 'jiao'
println str7?.reverse()
// 不加问好会报错 空指针异常
println str8.reverse()
/****
* 使用多赋值
*/
def fullName( fullname) {
fullname.split(' '
)
}
def ( first, last ) = fullName ('jiao xi'
)
println " $first , $last"
/*********** * 多赋值 * 多余的变量将会设置为null , 多余的值会被 丢弃 。 */def ( String cat , String mouse ) = [ 'Tom', 'Jerry', 'Tyke']def ( String cat1 , String mouse1, String dog ) = [ 'Tom', 'Jerry']println "$cat and $mouse "println "$cat1 and $mouse1 and $dog "/************** * groovy 中的bool值判定 * * 类型 为真的条件 * Boolean 值为true * Collection 集合不为空 * Character 值不为0 * CharSequence 长度大于0 * Iterator hasNext() 为true * Number Double值不为0 * Map 该映射不为空 * Matcher 至少有一个匹配 * Object[] 长度大于0 * 其他任何类型 引用不为null * */
/***** 闭包懒加载*/
def number = 1 def eagerGString = "value == ${number}" def lazyGString = "value == ${ -> number }" assert eagerGString == "value == 1" assert lazyGString == "value == 1" number = 2 assert eagerGString == "value == 1" assert lazyGString == "value == 2"
/************ *操作符*/
int function(int x, int y, int z) { x*y+z }
def args = [4,5,6]
assert function(*args) == 26
转载于:https://www.cnblogs.com/jsersudo/p/11319048.html
相关资源:Groovy编程(英文版)