1. 认识 GString
a) 认识 ’ ’ 与 " " 的区别
def name = 'Peter'
println name // 输出 Peter
println name.class // 输出 class java.lang.String
def word = "Hello $name !"
println word // 输出 Hello Peter !
println word.class // class org.codehaus.groovy.runtime.GStringImpl
b) 认识 ’’’ ’’’ 与 """ """的区别
def name = 'Peter'
def word = '''Hello
$name
'''
println word // 输出 Hello\n$name
println word.class // 输出 class java.lang.String
word = """Hello
$name
"""
println word // 输出 Hello\nPeter
println word.class // 输出 class org.codehaus.groovy.runtime.GStringImpl
i. ’ ’ 与 ''' 表示不进行表达式替换
ii. "" 与""" """ 表示进行表达式替换
iii. 用于替换的值必须定义过(不管是否赋过值),否则有异常。如上面的 name 必须定义过( def name )。
2. 数字的使用
a) Java 中的基本类型 (int,byte,char,double,float 等 ) 都不是对象。
b) Groovy 中的整数是 Integer ,也是对象。
println 1 // 输出 1
println 1.class // 输出 class java.lang.Integer
println 1.plus(2) // 输出 3
c) Groovy 中的浮点数是 BigDecimal ,也是对象。
println 1.1 // 输出 1.1
println 1.1.class // 输出 class java.math.BigDecimal
println 1.1.add(2.2) // 输出 3.3
3. assert 的支持
a) 和 java 一样都是表示对后面表达式的 true or false 判断。
b) 表达式为 false 则抛 java.lang.AssertionError 异常
def a = 1
assert a == 1 // 没有任何输出
assert 1 == 2 // 抛出异常
Exception thrown: Expression: (1 == 2)
java.lang.AssertionError: Expression: (1 == 2)
at ConsoleScript20.run(ConsoleScript20:4)
assert false // 抛出异常
Exception thrown: Expression: false
java.lang.AssertionError: Expression: false
at ConsoleScript74.run(ConsoleScript74:1)