Groovy: часть 2 – Hello World и базовый синтаксис

 

groovy-logoHello, Groovy

Предыдущая часть – Groovy: часть 1 – установка на Linux.

Самый простой способо выполнить “Hello, World” – используя Groovy shell:

$ groovysh
Groovy Shell (2.4.7, JVM: 1.8.0_51)
Type ':help' or ':h' for help.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
groovy:000> 

И выполнить println('Hello World'):

groovy:000> println('Hello World');
Hello World
===> null

Либо – в виде скрипта:

#!/usr/bin/env groovy

class Example {
   static void main(String[] args) {
      // Using a simple println statement to print output to the console
      println('Hello World');
   }
}

Проверяем:

$ chmod +x hello.groovy
$ ./hello.groovy 
Hello World

Оператор Import

Оператор import используется (внезапно) для импорта библиотек для использования в вашем коде.

В примере ниже – выполняется импорт класса MarkupBuilder:

import groovy.xml.MarkupBuilder 
def xml = new MarkupBuilder()

По умолчанию – Groovy выполняет импорт следющих библиотек:

import java.lang.* 
import java.util.* 
import java.io.* 
import java.net.* 

import groovy.lang.* 
import groovy.util.* 

import java.math.BigInteger 
import java.math.BigDecimal

Токены

Токеном (token) может являться ключевое слово, идентификатор, константа, строковый литерал или просто символ.

Например, в коде:

println("Hello World");

Имеется два токена – ключевое слово println и строковый литерал Hello World.

Комментарии в Groovy

В Groovy имеются как однострочные так и многострочные комментарии.

Однострочный комментарий начинается с символов // и могжет быть помещен в любом месте кода:

class Example {
   static void main(String[] args) {
      // Using a simple println statement to print output to the console
      println('Hello World');
   }
}

Многострочные комментарии начинаются с /*, и заканчиваются */:

class Example {
   static void main(String[] args) {
      /* This program is the first program
      This program shows how to display hello world */
      println('Hello World');
   }
}

Точка с запятой

В оригинале говорится “[…] it is required to have semicolons […] Groovy” – на самом деле их не обязательно использовать каждый раз.

Может – в более старых версиях Groovy они требовались? http://groovy-lang.org/semantics.html: “In Groovy semicolons at the end of the line can be omitted, if the line contains only a single statement.

Пример кода с использованием точки с запятой:

class Example {
   static void main(String[] args) {
      println('Hello World');
   }
}

И без:

class Example {
   static void main(String[] args) {
      println('Hello World')
   }
}

Оба примера будут работать одинаково:

$ ./semicolon.groovy 
Hello World

Однако при использовании нескольких операторов в одной строке – их необходимо разделять:

class Example {
   static void main(String[] args) {
      println('Hello World'); assert true
   }
}

Иначе – возникнет ошибка:

class Example {
   static void main(String[] args) {
      println('Hello World') assert true
   }
}
$ ./class.groovy 
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/setevoy/Scripts/Groovy/class.groovy: 5: expecting '}', found 'assert' @ line 5, column 30.
         println('Hello World') assert true
                                ^

Идентификаторы

Идентификаторы (identifiers) используются для определения пользовательских переменных, фукнций и других объектов. Имя идентификатора может начинаться с буквы, знака $ или знака подёркивания _, например:

def employeename 
def student1 
def student_name

def тут – ключевое слово, используемое в Groovy для определения идентификатора.

Пример использования идентификатора в нашей Hello, World программе:

class Example {
   static void main(String[] args) {
      def x = 5;
      println('Hello World: ' + x);
   }
}

Результат:

$ ./example.groovy 
Hello World: 5

Ключевые слова

Ключевые слова – это специальные слова, зарезирвированные в Groovy для самого языка:

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 pull package return
super switch this throw
throws trait true try
while

Пробелы

Пробелы в Groovy отделяют одну часть выражения от другой, позволяя компилятору различать отдельные элементы выражения.

В следующем примере – переменные отделяют ключевое слово def от переменной x:

def x = 5;

Литералы

Литерал – обозначение для представления фиксированного значения в Groovy.

В Groovy имеются целочисленные (integer), символьные и строковые литералы, например:

12 
1.45 
‘a’ 
“aa”

Продолжение – Groovy: часть 3 – типы данных.