프로그래밍/java
Groovy 문법
홍티비
2025. 1. 22. 00:17
728x90
반응형
SMALL
Groovy 문법은 Java와 유사하지만 더 간결하고 유연하며 생산성을 높이는 기능들이 추가되어 있습니다. Groovy의 문법을 아래 주요 요소별로 정리해 보겠습니다.
1. 기본 사항
변수 선언
- 타입을 명시하거나, 동적 타입으로 선언할 수 있습니다.
int x = 10 // 정적 타입 def y = 20 // 동적 타입 (타입 생략) |
출력
println "Hello, Groovy!" // 출력: Hello, Groovy! |
2. 문자열
문자열 선언
- 싱글(') 또는 더블(") 따옴표를 사용할 수 있습니다.
def singleQuote = 'Hello' def doubleQuote = "World" |
문자열 보간 (String Interpolation)
- 변수 또는 표현식을 ${}로 포함할 수 있습니다.
def name = "Groovy" println "Hello, ${name}!" // 출력: Hello, Groovy! |
3. 조건문
if-else
- Java와 유사하지만, ()는 선택적입니다.
def age = 18 if (age >= 18) { println "Adult" } else { println "Minor" } |
switch
- Java보다 더 유연하며, 모든 객체를 사용할 수 있습니다.
def value = 10 switch (value) { case 1: println "One" break case [10, 20, 30]: // 리스트 매칭 println "Matched in list" break case { it > 5 }: // 조건 람다 매칭 println "Greater than 5" break default: println "Default" } |
4. 반복문
for-each
def numbers = [1, 2, 3, 4, 5] for (num in numbers) { println num } |
while
def count = 5 while (count > 0) { println count count-- } |
5. 컬렉션
리스트 (List)
def list = [1, 2, 3, 4] println list[0] // 출력: 1 list << 5 // 값 추가 println list // 출력: [1, 2, 3, 4, 5] |
맵 (Map)
def map = [name: "Groovy", version: "3.0"] println map.name // 출력: Groovy map.language = "Java" println map // 출력: [name:Groovy, version:3.0, language:Java] |
6. 클로저 (Closure)
- 익명 함수로, 함수형 프로그래밍의 기본 단위입니다.
def greet = { name -> println "Hello, $name" } greet("World") // 출력: Hello, World // 매개변수가 없는 클로저 def noArgs = { println "No arguments!" } noArgs() |
고급 사용
- 기본 매개변수 이름은 it입니다.
def printIt = { println it } printIt("Groovy") // 출력: Groovy |
- 클로저를 반복문에서 사용:
def numbers = [1, 2, 3, 4, 5] numbers.each { println it } // 1, 2, 3, 4, 5 출력 |
7. 클래스와 객체
클래스 선언
- Java와 비슷하지만 간결합니다.
class Person { String name int age def sayHello() { println "Hello, my name is $name" } } def person = new Person(name: "Groovy", age: 25) person.sayHello() // 출력: Hello, my name is Groovy |
기본 getter/setter
- Groovy는 자동으로 getter와 setter를 생성합니다.
person.name = "New Name" println person.name // 출력: New Name |
8. 예외 처리
Try-Catch-Finally
try { int result = 10 / 0 } catch (ArithmeticException e) { println "Cannot divide by zero" } finally { println "Execution complete" } |
9. 파일 I/O
파일 읽기
def file = new File("example.txt") file.eachLine { line -> println line } |
파일 쓰기
new File("example.txt").write("Hello, Groovy!") |
10. 기타 문법
안전 호출 연산자 (?.)
- 객체가 null인지 확인하고 안전하게 호출.
def person = null println person?.name // 출력: null (NullPointerException 방지) |
엘비스 연산자 (?:)
- 기본값을 지정할 때 사용.
def name = null println name ?: "Default Name" // 출력: Default Name |
스프레드 연산자 (*)
- 리스트나 맵을 해체하거나 병합할 때 사용.
def list1 = [1, 2, 3] def list2 = [*list1, 4, 5] println list2 // 출력: [1, 2, 3, 4, 5] |
Groovy의 장점
- Java와 유사한 문법으로 학습이 쉬움.
- 간결하고 유연한 코드 작성 가능.
- 클로저와 컬렉션 처리 등 현대적 프로그래밍 패턴 지원.
이 문법들을 바탕으로 Gradle 스크립트 작성이나 스크립팅 작업을 효율적으로 수행할 수 있습니다.
728x90
반응형
LIST