Groovy语言规范--基础篇(一)

语法

本章介绍了groovy编程语言的语法。该语言的语法源于Java语法,但用Groovy的特定构造增强它,并允许某些简化。

1.1.1. 注释

单行注释

单行注释开始于//,能使用在任何位置,字符跟在//后面,到行尾的这部分都被认为是注释的一部分

// a standalone single line comment
println "hello" // a comment till the end of the line
多行注释

一个多行注释开始于/*,能使用在任何位置,字符跟在/后面会被认为是注释的一部分,包括新的一行的字符,直到遇到/才认为注释已结束,因此多行注释才能放在语句后面或者语句中间。

/* a standalone multiline comment
   spanning two lines */
println "hello" /* a multiline comment starting
                   at the end of a statement */
println 1 /* one */ + 2 /* two */
Groovydoc 注释

跟多行注释一样的是,Groovydoc 注释也是支持多行的,不同的是Groovydoc 注释开始于/**
,结束于*/,第一个groovydoc注释行后面的行可以选择以星号*开头。这些注释与以下内容相关:

  • 类型定义(类、接口、枚举、注释)
  • 字段和属性定义
  • 方法定义

尽管编译器不会抱怨groovydoc注释没有与上述语言元素相关联,但是您应该在这些构造前面加上注释。

/**
 * A Class description
 */
class Person {
    /** the name of the person */
    String name

    /**
     * Creates a greeting method for a certain person.
     *
     * @param otherPerson the person to greet
     * @return a greeting message
     */
    String greet(String otherPerson) {
       "Hello ${otherPerson}"
    }
}

Groovydoc遵循与Java自己的JavaDoc相同的约定。因此,您可以使用与JavaDoc相同的标签。

Shebang 行

除了单行注释之外,还有一个特殊的行注释,通常称为shebang行,Unix系统可以理解它,它允许脚本直接从命令行运行,前提是您已经安装了groovy发行版,并且路径上有groovy命令。

#!/usr/bin/env groovy
println "Hello from the shebang line"

#字符必须是文件的第一个字符。任何缩进都会产生编译错误。

1.1.2. 关键字

下面的列表表示groovy语言的所有关键字:

Table 1. Keywords

as

assert

break

case

catch

class

const

continue

def

default

do

else

enum

extends

false

finally

for

goto

if

implements

import

in

instanceof

interface

new

null

package

return

super

switch

this

throw

throws

trait

true

try

while

1.1.3. 标识符

普通标识符

标识符以字母、美元或下划线开头。它们不能以数字开头。
字母可以在以下范围内:

  • ‘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表达式的name部分可以用person."name"或person.'name’引用。当某些标识符包含Java语言规范禁止的非法字符时,这是特别有趣的,但是当引用时,Groovy允许使用这些字符。例如,破折号、空格、感叹号等字符。

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"

正如我们将在下面关于字符串的小节中看到的,groovy提供了不同的字符串文本。在点后面实际上允许使用所有类型的字符串:

map.'single quote'
map."double quote"
map.'''triple single quote'''
map."""triple double quote"""
map./slashy string/
map.$/dollar slashy string/$

普通字符串和groovy的gstring(内插字符串)之间是不同的,在后一种情况下,内插值插入到最终字符串中来得到整个标识符:

def firstname = "Homer"
map."Simpson-${firstname}" = "Homer Simpson"

assert map.'Simpson-Homer' == "Homer Simpson"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值