普通标志符
普通标志符以字母,下划线,$美元符号开头,不能以数字开头。。。
一个字母包括以下的一些字符范围
-
'a' to 'z' (lowercase ascii letter)
-
'A' to 'Z' (uppercase ascii letter)
-
'\u00C0' to '\u00D6'
-
'\u00D8' to '\u00F6'
-
'\u00F8' to '\u00FF'
-
'\u0100' to '\uFFFE'
第二个字符可以跟着字母或者数字。
有效命名的例子
def name
def item3
def with_underscore
def $dollarStart
无效命名的例子
def 3tier
def a+b
def a#b
使用一个 点'.' 也是允许的
foo.as
foo.assert
foo.break
foo.case
foo.catch
引用标识符
引号标识符出现在点号表达式,例如一个人的名字person.name,可以使用点号表达式替代。person."name"或者是person.'name'。Java语言是禁止这种用法的。
def map = [:]
map."an identifier with a space and double quotes" = "ALLOWED"
map.'with-dash-signs-and-single-quotes' = "ALLOWED"
assert map."an identifier with a space and double quotes" == "ALLOWED"
assert map.'with-dash-signs-and-single-quotes' == "ALLOWED"
字符串表达式
map.'single quote'
map."double quote"
map.'''triple single quote'''
map."""triple double quote"""
map./slashy string/
map.$/dollar slashy string/$
纯文本和GStrings字符表达式的区别是。插值会替代GSting的表达是才是最终的字符串值
def firstname = "Homer"
map."Simpson-${firstname}" = "Homer Simpson"
assert map.'Simpson-Homer' == "Homer Simpson"