加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

《Groovy in Action》笔记

发布时间:2020-12-14 16:52:26 所属栏目:大数据 来源:网络整理
导读:1、Treat?everything?as?an?object?and?all?operators?as?method?calls. 2、Groovy?automatically?imports?the?packages?groovy.lang.*,?groovy.util.*,java.lang.*,?java.util.*, ?java.net.*,?and?java.io.*?as?well?as?the?classes?java.math.BigInteger?

1、Treat?everything?as?an?object?and?all?operators?as?method?calls.

2、Groovy?automatically?imports?the?packages?groovy.lang.*,?groovy.util.*,java.lang.*,?java.util.*,?java.net.*,?and?java.io.*?as?well?as?the?classes?java.math.BigInteger?and?BigDecimal.

3、Methods?are?public?by?default.

4、Scripts?contain?Groovy?statements?without?an?enclosing?class?declaration.

5、Groovy?facilitates?working?with?beans?in?three?ways:

■?Generating?the?accessor?methods.

Allowing?simplified?access?to?all?JavaBeans?(including?GroovyBeans).

■?Simplified?registration?of?event?handlers.

6、string?literals?can?appear?in?single?or?double?quotes.?The?doublequoted?version?allows?the?use?of?placeholders,?which?are?automatically?resolved?as?required.

Eg.

def  nick = 'Gina';
def  book = 'Groovy in Action';
assert  "$nick is $book" == 'Gina is Groovy in Action';


7、List

eg.

def roman = ['','I','II','III','IV','V','VI','VII'];
assert roman[4] == 'IV';
roman[18] = 'VIII';
assert roman.size() == 19;
println roman[14];   //null

8、Map

eg.

def http = [100 : 'CONTINUE',200 : 'OK',400 : 'BAD REQUEST' ]
assert http[200] == 'OK'
http[500] = 'INTERNAL SERVER ERROR'
assert http.size() == 4
http[404] = "NOT FOUND";
assert http.size() == 5

9、Ranges

eg.

def x = 1..10
assert x.contains(5)
assert x.contains(15) == false
assert x.size() == 10
assert x.from == 1
assert x.to == 10
assert x.reverse() == 10..1

assert (0..<10).contains(9)

assert (0..<10).contains(10) == false


10、Closures

A?closure?is?a?piece?of?code?wrapped?up?as?an?object.?It?acts?like?a?method?in?that?it?can?take?parameters?and?it?can?return?a?value.?It’s?a?normal?object?in?that?you?can?pass?a?reference?to?it?around?just?as?you?can?a?reference?to?any?other?object.

eg.

def roman = ['','VII'];
roman[18] = 'VIII';
roman.each(){
num ->
println num;
}

roman.each{
num ->
println num;
}

def printer = { line -> println line };
Closure c = {str -> println "Closure: " + str};
roman.each(c);
roman.each(printer);

Book book1 = new Book();
book1.setId(1);
book1.setName("groovy in action");

Book book2 = new Book();
book2.setId(2);
book2.setName("advance javascript");

def books = [];

books.add(book1);
books.add(book2);

def i = 0;

def bookClosure = {
book ->
println ((++i) + ".《" + book.getName() + "》");
}

books.each(bookClosure);


def adder = { x,y -> return x+y };
assert adder(4,3) == 7;

11、In?conditionals,?null?is?treated?like?false;?not-null?is?treated?like?true.

12、Groovy?is?dynamic

def un = 2;
println un;

un = new Date();
println un;

13、The?default?implementation?of?the?equals?operator?doesnt?throw?any?NullPointerExceptions?either.?Remember?that?==?(or?equals)?denotes?object?equality?(equal?values),?not?identity?(same?object?instances).

14、Method

def doSth(i){ //defalut is public if(i){ return 2; }else{ return new Date(); } }// if nothing return then return last executive statement outcomes //or null.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读