Содержание
Hello, 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 – типы данных.