grovvy(7)-闭包

特点:

1:默认参数:it(不传参数时,会有默认参数it.有参数时则没有隐式参数it)

def clouser3={println("hello groovy${it}")}

clouser3(name)//hello groovy3333

2:grovvy中闭包如果是最后一个参数可以不放在括号内,可以直接放在括号外

number.downto(1){    num->result *=num}

3:如果参数只有一个闭包,小括号也可以省略

number.downsd{

    num->result *=num

}

package variable

//闭包概念:代码块

//闭包的定义

def clouser={

    println('hello groovy')

}

//闭包的调用

clouser.call()//使用call 调用

clouser()//想方法一样调用

//增加参数

def clouser1={String name ->println("hello groovy${name}")}

clouser1.call("222")//hello groovy222

clouser1("222")//hello groovy222

def name="3333"

clouser1(name)//hello groovy3333

def clouser2={String arg1,int age->println("hello groovy${name},age${age}")}

clouser2('lich',233)//hello groovy3333::age233

//默认参数:it(不传参数时,会有默认参数it.有参数时则没有隐式参数it)

def clouser3={println("hello groovy${it}")}

clouser3(name)//hello groovy3333

//返回值,闭包是一定有返回值的

def clouser4={

    println('hello groovy')

}

def result=clouser4()

    println(result)////null .无定义return时,返回值为null

def clouser5={String aa->

    return"hello ${aa}";

}

def result2=clouser5("hahaah")

println(result2)//hello hahaah

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 8,850评论 1 24
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,259评论 19 139
  • 先判断一下,你的皮肤是属于以下哪一种? 1、干性皮肤(脸部不油腻,一年四季脸部经常干干的) 2、中性皮肤(较理想的...
    简悠U生活阅读 1,657评论 0 1
  • 听过的道理那么多,为何还是过不好一生?你是不是也有这样的困惑?关于如何做一个合格优秀的消费者,关注的某一时尚公众号...
    子非_似是而非阅读 4,477评论 0 1
  • 方_圆_阅读 1,247评论 0 0

友情链接更多精彩内容