💾 Archived View for gem.sdf.org › s.kaplan › cheatsheets › programming-languages › groovy.md captured on 2023-11-04 at 12:14:44.
⬅️ Previous capture (2023-09-28)
-=-=-=-=-=-=-
# Groovy Cheatsheet Groovy is a dynamic programming language that is built on top of the Java Virtual Machine (JVM). It is designed to be concise and expressive, making it a popular choice for scripting, automation, and web development. ## Unique Features - Dynamic typing - Closures - Optional typing - Operator overloading - Native syntax for lists, maps, and regular expressions - Integration with Java libraries ## Variables Variables in Groovy are declared using the `def` keyword. Groovy supports dynamic typing, so you don't need to specify the type of the variable.
def name = "John"
def age = 30
def pi = 3.14
## Functions Functions in Groovy are declared using the `def` keyword followed by the function name and parameters. Groovy supports closures, which are anonymous functions that can be assigned to variables and passed as arguments to other functions.
def greet(name) {
println "Hello, $name!"
}
greet("John")
def add = { a, b ->
a + b
}
println add(2, 3)
## Loops Groovy supports `for` and `while` loops, as well as the enhanced `for` loop, which can iterate over collections.
def numbers = [1, 2, 3, 4, 5]
for (number in numbers) {
println number
}
def i = 0
while (i < 5) {
println i
i++
}
## Conditionals Groovy supports `if`, `else if`, and `else` statements, as well as the ternary operator.
def age = 30
if (age < 18) {
println "You are too young to vote."
} else if (age < 21) {
println "You can vote, but not drink."
} else {
println "You can vote and drink."
}
def result = age >= 18 ? "You are an adult" : "You are not an adult"
## File Manipulation Groovy provides several ways to read and write files. You can use the `File` class to create, read, write, and delete files.
def file = new File("example.txt")
// Write to file
file.write("Hello, world!")
// Read from file
def content = file.text
println content
// Delete file
file.delete()
## Resources - [Groovy Documentation](https://groovy-lang.org/documentation.html) - [Groovy Style Guide](https://github.com/apache/groovy/blob/master/styleguide.md) - [Groovy Goodness](https://mrhaki.blogspot.com/search/label/Groovy%20Goodness) blog series by Hubert Klein Ikkink