groovy 闭包样例

class  Employee  {
    def name, salary
    
boolean manager
    String toString() 
return name }
}


def emps 
=  [ new  Employee(name: ' Guillaume ' , manager: true , salary: 200 ),
    
new  Employee(name: ' Graime ' , manager: true , salary: 200 ),
    
new  Employee(name: ' Dierk ' , manager: false , salary: 151 ),
    
new  Employee(name: ' Bernd ' , manager: false , salary: 50 )]

def managers(emps) 
{
    
return emps.findAll { e -> e.isManager() }
}


assert  emps[ 0 .. 1 ==  managers(emps)  //  [Guillaume, Graime]

def highPaid(emps) 
{
    threshold 
= 150
    
return emps.findAll { e -> e.salary > threshold }
}


assert  emps[ 0 .. 2 ==  highPaid(emps)  //  [Guillaume, Graime, Dierk]

def paidMore(amount) 
{
    
return { e -> e.salary > amount}
}

def highPaid 
=  paidMore( 150 )

assert  highPaid(emps[ 0 ])  //  true
assert  emps[ 0 .. 2 ==  emps.findAll(highPaid)

def filename 
=   ' test.txt '
new  File(filename).withReader { reader -> doSomethingWith(reader) }

def readersText
def doSomethingWith(reader) 
{ readersText = reader.text }

assert   new  File(filename).text  ==  readersText
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值