- - - - - - - - - - - - - - groovy : 000 > println " Hello " Hello = = = > null groovy : 000 > exit 예제 [ 편집 ] 기본적인 코드 [ 편집 ] 그루비에서는 거의 모든 것이 객체이다. 문자열 객체 groovy : 000 > " Groovy is groovy ". length = = = > 16 groovy : 000 > " Rick ". indexOf ( " k " ) = = = > 3 클래스의 정적 메소드 ( static method ) 호출 groovy : 000 > Math = = = > class java. lang. Math groovy : 000 > Math. abs ( - 75 ) = = = > 75 컬렉션 ( collection ) [ 편집 ] 리스트 ( list ) [ 편집 ] groovy : 000 > a = [ 1,'hi ', 3. 14, 1, 2, [ 4, 5 ] ] = = = > [ 1, hi, 3. 14, 1, 2, [ 4, 5 ] ] groovy : 000 > a [ 2 ] = = = > 3. 14 groovy : 000 > a. reverse = = = > [ [ 4, 5
##ie ( DMOZ 기반 ) 원본 주소 " " 분류 : 2003년 도입코드 예시에 관한 문서JVM 프로그래밍 언어객체 지향 프로그래밍 언어2003년 개발된 프로그래밍 언어스크립트 언어자바 프로그래밍 언어 계열아파치 라이선스 소프트웨어크로스 플랫폼 자유 소프트웨어동적 프로그래밍 언어 둘러보기 메뉴 개인 도구 로그인하지 않음토론기여계정 만들기로그인 이름공간 문서토론 변수 보기 읽기편집역사 보기 더 보기 검색 둘러보기 대문사용자 모임요즘 화제최근 문서 보기임의 문서로도움말기부 도구 여기를 가리키는 문서가리키는 글의 최근 올리기특수 문서 목록고유 링크문서 정보위키데이터 항목이 문서 인용하기 인쇄 / 내보내기 책 만들기PDF로 다운로드인쇄용 판 다른 언어 日 本 語 / 中 文 링크 편집 이 문서는 2019년 1월 8일 ( 화 ) 11 : 03에 마지막으로 편집되었습니다. 모든 문서는 크리에이티브 커먼즈 저작자표시 - 동일조건변경허락 3. 0에 따라 사용할 수 있으며, 추가적인 조건이 적용될 수 있습니다. 자세한 내용은 이용 약관을 참고하십시오. 미국 및 다른 국가에 등록되어 있는 Wikimedia Foundation, Inc. 소유의 등록 상표입니다. 개인정보 정책 위키백
2 ] = = = > 3. 14 groovy : 000 > a. reverse = = = > [ [ 4, 5 ], 2, 1, 3. 14, hi, 1 ] groovy : 000 > a. flatten = = = > [ 1, hi, 3. 14, 1, 2, 4, 5 ] groovy : 000 > a. flatten. unique = = = > [ 1, hi, 3. 14, 2, 4, 5 ] 맵 ( map ) [ 편집 ] groovy > hash = ['water':'wet ','fire':'hot'] groovy > println hash ['fire'] groovy > hash. each { key, value - > groovy > println " $ { key } is $ { value } " groovy > } hot water is wet fire is hot Result : [ " water " : " wet ", " fire " : " hot " ] 제어구조 [ 편집 ] groovy > if ( " fablic ". length > 3 ) groovy > println'ya'groovy > else groov
* 2 } Result : [ 2, 4, 10, 26, 42 ] 지정된 횟수 만큼 반복 처리 groovy > 3. times { println ('foobar') } foobar foobar foobar 재귀호출 ( recursive call ) 로 계산하는 팩토리얼 [ 편집 ] def recfact ( v, k ) { if ( k < = 1 ) return v else recfact ( v * k, k - 1 ) } def factorial ( n ) { return recfact ( 1, n ) } for ( m in 0.. < 10 ) println " $ m! = $ { factorial ( m ) } " 실행 결과 : 0! = 1 1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 6! = 720 7! = 5040 8! = 40320 9! = 362880 같이 보기 [ 편집 ] 그레일즈 ( Grails ) : 루비 온 레일즈와 비슷한 웹 개발 프레임워크 프로그래밍 언어 외부 링크 [ 편집 ] 그루비 공식 홈페이지 ( 영어 ) 그루비 ( 프로그래밍 언어 ) - Curlie ( DMOZ 기반 ) 원본 주소 " " 분류 : 2003년 도입코드 예시에 관한 문서JVM 프로그래밍 언어객체 지향 프로그래밍
6. 3 제어구조 6. 4 클로저 ( closure ) 와 반복자 ( iterator ) 6. 4. 1 반복 처리 6. 5 재귀호출 ( recursive call ) 로 계산하는 팩토리얼 7 같이 보기 8 외부 링크 특징 [ 편집 ] 자바 가상 머신에서 작동하는 동적 타이핑 프로그래밍 언어이다. 자바의 강점 위에 파이썬, 루비, 스몰토크등의 프로그래밍 언어에 영향을 받은 특장점을 더하였다. 자바 프로그래머들이 많은 학습을 하지 않고도 최신 프로그래밍 기법을 사용할 수 있다. 도메인 전문 언어와 단순화된 문법을 지원하여 코드가 읽고 유지 보수하기 편해진다. 역사 [ 편집 ] 2002년 영국 출신의 프로그래머인 제임스 스트라칸에 의해 창시되었으며 현재 아파치 사용 허가서 2. 0 아래에 소스와 바이너리가 배포, 공개되어 있다. 2012년 6월 2일 2. 0버전이 출시되었다. 철학 [ 편집 ] 그루비의 창시자 제임스 스트라칸은 그루비의 가장 중요한 점이 타입이 유연 간결한 동적인 프로그래밍 언어라고 한다. 자바와의 비교 [ 편집 ] 그루비의 문법 체계는 자바의 것을 계승 발전시켰다. 자바에는 없는 간편 표기법 ( syntactic sugar ) 을 지원하는 외에 리스트, 맵, 정규식을
, " Chris " } ) if ( it. length < = 4 ) System. out. println ( it ) ; } } 그루비로는 간단히 다음과 같이 표현할 수 있다. [ " Rod ", " Carlos ", " Chris " ]. findAll { it. size < = 4 }. each { println it } 도구 [ 편집 ] groovy [ 편집 ] 가장 많이 쓰는 그루비 스크립트 실행 도구 실행 예 : groovy hello. groovy groovyc [ 편집 ] 자바 쪽에서 불러 쓸 수 있는 라이브러리 만들 때 쓰는 그루비 컴파일러 내용은 자바 소스와 거의 같으나 파일 확장명을 groovy로 하여 저장한다. ( 소스 파일명 : HelloWorld. groovy ) public class HelloWorld { public static void main ( String [ ] args ) { println " Hello, World! " } } 미리 환경변수 CLASSPATH를 설정한다. ( java로 실행할 때 필요함 ) 윈도 > set CLASSPATH = % GROOVY - HOME % embeddable groovy - all - 1. 7
그루비 ( 프로그래밍 언어 ) - 위키백과, 우리 모두의 백과사전 그루비 ( 프로그래밍 언어 ) 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 그루비 ( Groovy ) 패러다임 다중 패러다임발표년도 2003년설계자 제임스 스트라칸개발자 글라우미 라포어최근 버전 2. 4. 14최근 버전 출시일 2018년 2월 24일 ( 15달 전 ) ( 2018 - 02 - 24 ) 자료형 체계 불규칙, 동적 타이핑주요 구현체 Groovy 영향을 받은 언어 자바, 루비, 파이썬, 스몰톡영향을 준 언어 제이루비운영 체제 자바가상기계라이선스 아파치 허가서 2. 0웹사이트 / 그루비 ( Groovy ) 는 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다. 목차 1 특징 2 역사 3 철학 4 자바와의 비교 5 도구 5. 1 groovy 5. 2 groovyc 5. 3 groovysh 6 예제 6. 1 기본적인 코드 6. 2 컬렉션 ( collection ) 6. 2. 1 리스트 ( list ) 6. 2. 2 맵 ( map ) 6. 3 제어구조 6. 4 클로저 ( closure ) 와 반복자 ( iterator ) 6. 4. 1 반복 처리
% GROOVY - HOME % embeddable groovy - all - 1. 7. 3. jar 유닉스 / 리눅스 $ export CLASSPATH = $ GROOVY - HOME / embeddable / groovy - all - 1. 7. 3. jar 컴파일 > groovyc - d. HelloWorld. groovy 실행 > java - classpath. ; % CLASSPATH % HelloWorld groovysh [ 편집 ] 간단한 코드를 테스트하는데 좋은 그루비 > groovysh Groovy Shell ( 1. 7. 3, JVM : 1. 6. 0 - 21 ) Type'help'or'h'for help. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - groovy : 000 > println " Hello "
##ngth > 3 ) groovy > println'ya'groovy > else groovy > println'nop'ya groovy > def n = 0 groovy > while ( n < 3 ) { groovy > println n groovy > } 0 1 2 일부 제어구조는 반복자 ( iterator ) 로 대신할 수 있다. 클로저 ( closure ) 와 반복자 ( iterator ) [ 편집 ] 반복 처리 [ 편집 ] 리스트의 각 요소로 반복 처리 클로저를 사용하지 않는 경우 groovy > def list = [ 1, 2, 5, 13, 21 ] groovy > def n = 0 groovy > while ( n < list. size ) { groovy > list [ n ] * = 2 groovy > } groovy > list Result : [ 2, 4, 10, 26, 42 ] 클로저를 사용한 경우 groovy > def list = [ 1, 2, 5, 13, 21 ] groovy > list. collect { it * 2 } Result : [ 2, 4, 10, 26, 42 ] 지정된 횟수 만큼 반복 처리 groovy > 3.
##에는 없는 간편 표기법 ( syntactic sugar ) 을 지원하는 외에 리스트, 맵, 정규식을 위한 구문을 제공함으로써 프로그래밍을 쉽고 간결하게 해 준다. 더구나 LISP 언어 초기부터 있어 왔던 클로저를 도입함으로써 메타프로그래밍이 가능하게 하였다. 자바가상기계 ( JVM ) 상에서 동작하는 동적인 스크립팅 언어 Jython, JRuby, Jacl, Rhino, LuaJava 등에 비해 손색이 없으며, 짧은 역사에도 불구하고 빠른 발전을 하고 있다. 자바 소스는 컴파일해야만 사용할 수 있지만, 그루비 소스는 스크립트 파일 그대로 실행시킬 수도 있고, 자바처럼 컴파일하여 쓸 수도 있다. 거의 대부분의 자바 소스는 파일 확장자만 바꾸면 수정 없이 그루비에서도 쓸 수 있다. 다음은 표준 Java 5 의 예제이다. public class StdJava { public static void main ( String argv [ ] ) { for ( String it : new String [ ] { " Rod ", " Carlos ", " Chris " } ) if ( it. length < = 4 ) System. out. println ( it )
그루비(Groovy)는 자바에 파이썬, 루비, 스몰토크 등의 특징을 더한 동적 객체 지향 프로그래밍 언어이다.