Title: ????? ?????? ??????? ? ??????? ? ????? syntax ???? ?????? ????? Groovy
1??? ???? ?????? ??????
????? ???
????? ?????? ??????? ? ??????? ? ????? syntax
???? ?????? ????? Groovy
?????????
???? ?????? ???
2?????
?????? ?????? ????? ?????? ???? ( ?? ?? ??? ?????
????? ???? ????? ?? ????) ???. ?????? ??????
?????? ?? ?????? ?? ?? ???????? ???? ?? ??????
?????? ???? ?? ??? ????? ? ????? ???? ??? ??????
?? ?????? .
Groovy ?? ???? ?????? ????? ?? ??? ???? ??????
???? ?? ???? ?? ?? ???? ???? ??? ?????? ?????
???? ??? Python , Ruby ,Perl ? Smalltalk ????
?? ???? ??? ???? ?? ????? ??? ???? ?????? ???
?????? ?? Library ??? ???? ?????? ???? ? ??
????? ?? ????? ???? ?? ???????? ???????
??? Syntax ??? ???? ????? ??? ?? ???? ( ????
???? ??? ???? ??? ??? ????? ?? ?? ?? ???????
?? ???)
3???????
???? ????? ????? ???? Groovy ???? ????? ??? ????
???? ???????? ?? ????? 2003 ???? ?? ? ?? ??? 2004
?? 2006 ???? ??? ?????? ?? ??? ???? ????? ??
??? ?? ?? ????????? ???? JCP (Java Community
Process) ???? ?? ?? ??? 1.0 ?? ??? ???? ?? ???
?????? 2007 ???? ????? Groovy ?? ????? ???
????? ?????? ????? JAX 2007 innovation award ??
?? ?? ??? ??? ? ?? ??? 2008 Grails ?? Framework
?????? ????? ?? Groovy ?? ???? ?????? JAX 2008
innovation award ?? ??? ?????
4???? ??? ?????
Eclipse
IntelliJ
TextMate
5???????
????? ???? ??? ???? ??Groovy ????? ?? ????? ??
????? ???? Groovy ?? ???? ?? dynamic typing ?
closures ? operator overloading ????? ??? ??????
?? ????? ??? ???? Groovy ?? ???? ? ??? ?? ???
???? ??? ?? Groovy ????? ????? ???? ?? ?? ????
???? ??? ?? ???? ????? . ?? ????? ???? ?? ??? ??
?? ???? ???? ????? ??? ???
for (String it new String "Rod", "Carlos",
"Chris") if (it.length() lt 4)
System.out.println(it)
?? ???? Groovy ?? ???? ??? ?? ????
"Rod", "Carlos", "Chris".findAllit.size() lt
4.eachprintln it
6???? ???????
- ???????????? ?????? (Object-Oriented)
- ??? ??? ?? Groovy ?? ?? ???. ? ?? ????? ?? ?????
?? ????? ???? ?? ???
Groovy ???? ??????? ?? ?? ???? ???????? ????
?????????? ??????. ??? ???? ?????? ?? ?? ???
1 1
?? ???? ??? ???? ???
1.plus(1)
??? ?? ???? ??? ??? ?? ??????? ?? Groovy ???????
?? ??????? ???
7- ???????????? ????? (Functional )
- ?????? ?????? ????? ???? ?? ???????????? ??? ??
?? ??? ??????? ?? ?????? ???? ??????? ?? ????????
????? ???? ?? ????? - ???????? ????? ??????. ?? ??? ??? ?????? ?????
????? ?? ????? ????? ???? ??? ????? ?????? ??
???? ? ?? ???? ?? ?? ?? ?? ?? ???? ??? ??? - ????? Groovy ????????? ???? ????? ?????? ?? ???
???? ?? ??? ??? ??????? ?????? ?? ????? ???? ????
???????? ?? ??????? ?? ???? ??? - ?????????? ???
def fac(n) n 0 ? 1 n fac(n - 1)
- ??????? (Closures)
- ?????? Closure ?????? ?? ???? ??? ?????? ?????
functional ?? ?? ???? ????? ?????? ??? ????
????? ?????? ?? ??? ?????? ???? - ?? ???? ???? Closure ?????? ?? ?? ???? ???? ??
??? ??? ?? ?? scope ?? ?? ?? ?? ????? ??? ???
??? ????? ???? - ???? ??? ???? ????? ?? ???? ??? ???? ???????
def clos println "hello!" println
"Executing the Closure" clos()
8- ???? ???? (dynamic)
- ?? Groovy ??????? ?????? ???????? ????? ??? ?? ??
???? ???? ????? ???. ??????? ?? ???? ?? ?? ????
????? ?? ???? ???? ????? ???
- ?????
- ?? Groovy ???? ????? ?? ????? ????? ??? ?? ????
??? ???? ?? ????? ????
def someObject "some value"
?????? ?? ?? ???? ?? ??????? ???? ????? ???????
????? ?? ??? ?? ???? ????? ???
GroovyObject someObject "some value"
????? ?? Groovy ????? ????? ??? ???? ?? ????
????
String someObject "some value"
9- ???????????? ?????? ?? ????
- ???????? Groovy ?? ??????? ???? ????? ???????? ?
??????? ???????? ???? ?? ?? Groovy ? ? ????????
Groovy ?? ?? ???? ??????? ???.
- Metaprogramming
- ???? ??? ?????? ????? ????? ?? ???? Groovy ?????
??? ????? ?? ????? - Metaprogramming ?? ?? ???? ???? ?? ???? ??????
????? ?? ?????? ???? ???? ?????? ?????? ?????
????? ????? ???
10Syntax
Syntax ???? Groovy ????? ?????? ?? ???? ????? ??
??? ??? ??? ?? ????? ??? ???? ???? ????? ? ?????
???? ?? ??? ???? ?? ???? ?? ??? ???? ?? ????
???? ????? ?? ?? syntax ???? ??????? ???? ??
????? ?? ??? ?? ???? ?? ????
System.out.println("Hi")
?? ??? ?? ?? Groovy
println Hi"
?? ?????? ????? ???? ?? ?? ??? ???? ?? ?????
????? ??? ?? ????? ????
11????? ????? ?? ???? ????? ?????
int anew int2
def A1,2,3,4,5,6,7,8,9
???? ?? ??? ???? ??? ?? ?????? ?? ???? ?? ???
def A1,2,3,4,5,6,7,8,9 def
B9,8,7,6,5,4,3,2,1 def c new
Integer33 for(i in 0..2) for(j in
0..2) cij0 for(k in 0..2) cijA
ikBkj