当前位置:网站首页>[groovy] closure (closure parameter list rule | default parameter list | do not receive parameters | receive custom parameters)
[groovy] closure (closure parameter list rule | default parameter list | do not receive parameters | receive custom parameters)
2022-07-05 04:40:00 【Programmer community】
One 、 Closure parameter list
The parameter settings of closures are as follows :
- Do not receive parameters : If when defining closures , Only written. " -> " Symbol , There is no parameter list defined , Indicates the closure Do not want to receive any parameters , The incoming parameter will report an error ;
- Default parameter list : If when defining closures , Didn't write " -> " Symbol , also There is no parameter list defined , Closure is OK Receive a default parameter it ;
- Receive custom parameters : If when defining closures , Yes " -> " Symbol , also Define parameter list , Closure Parameters must be passed in according to the parameter list ;
If only " -> " Symbol , There is no parameter list defined , If you still pass parameters into the closure , An error will be reported at run time , Reference resources 【 Error log 】Groovy Operation error reporting ( Exception in thread “main“ groovy.lang.MissingMethodException: No signature of ) Blog ;

Two 、 Closure parameter list code example
Code example :
import org.codehaus.groovy.ant.Groovyclass Test {
static void main(args) {
// I. Receive the thinning of a default parameter // Define closure variables def closure = {
println "Accept One Arguments : ${it}" } // Call closure closure.call("Hello"); closure("Hello"); // II. A closure that does not accept any parameters // Define closure variables , Parameters are not allowed to be passed in def closure2 = {
-> println "Not Accept Arguments" } // An error will be reported when the parameter is passed in //closure2("Hello") // Call closure , Cannot pass in parameters closure2.call(); closure2(); // III. Receive a closure of a custom parameter // Define closure variables , Declare a parameter a def closure3 = {
a -> println "${a}" } // Call closure , Cannot pass in parameters closure3.call(1); closure3(2); // IV. Receive the closure of two custom parameters // Define closure variables , Declare two parameters a, b // Print these two parameters in the closure def closure4 = {
a, b -> println "${a} : ${b}" } // Call closure , Cannot pass in parameters closure4.call(1, 2); closure4(3, 4); // V. Specify default values for closure parameters // Define closure variables , Declare two parameters a, b // And specify the default value for the closure def closure5 = {
a = 0, b = "Groovy" -> println "${a} : ${b}" } // Closures have default values , You can call without passing in parameters closure5() }}Execution results :
Accept One Arguments : HelloAccept One Arguments : HelloNot Accept ArgumentsNot Accept Arguments121 : 23 : 40 : Groovy
边栏推荐
- Invalid bound statement (not found) in idea -- problem solving
- TPG x AIDU|AI领军人才招募计划进行中!
- [illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording
- Chapter 6 text processing tools for shell programming (awk)
- 函数(基本:参数,返回值)
- 托管式服务网络:云原生时代的应用体系架构进化
- 取余操作是一个哈希函数
- MacBook installation postgresql+postgis
- How to remove installed elpa package
- 自动语音识别(ASR)研究综述
猜你喜欢
![[AI bulletin 20220211] the hard core up owner has built a lidar and detailed AI accelerator](/img/cc/06580ce7b553182968d273841a78b4.jpg)
[AI bulletin 20220211] the hard core up owner has built a lidar and detailed AI accelerator

首席信息官如何利用业务分析构建业务价值?

直播預告 | 容器服務 ACK 彈性預測最佳實踐

windows下Redis-cluster集群搭建

mxnet导入报各种libcudart*.so、 libcuda*.so找不到

Power management bus (pmbus)

指针函数(基础)

Construction d'un Cluster redis sous Windows
![[Business Research Report] top ten trends of science and technology and it in 2022 - with download link](/img/9f/4fc63fa7b0e9afc5dd638d4b599b2c.jpg)
[Business Research Report] top ten trends of science and technology and it in 2022 - with download link

Live broadcast preview | container service ack elasticity prediction best practice
随机推荐
如何进行「小步重构」?
[phantom engine UE] the difference between running and starting, and the analysis of common problems
After the deployment of web resources, the navigator cannot obtain the solution of mediadevices instance (navigator.mediadevices is undefined)
解密函数计算异步任务能力之「任务的状态及生命周期管理」
直播预告 | 容器服务 ACK 弹性预测最佳实践
程序员应该怎么学数学
Hypothesis testing -- learning notes of Chapter 8 of probability theory and mathematical statistics
Function (error prone)
Solution of circular dependency
机器学习 --- 决策树
Stage experience
Wan broadband access technology V EPON Technology
[Business Research Report] Research Report on male consumption trends in other economic times -- with download link
自动语音识别(ASR)研究综述
[Business Research Report] top ten trends of science and technology and it in 2022 - with download link
Flutter tips: various fancy nesting of listview and pageview
Qt蓝牙:搜索蓝牙设备的类——QBluetoothDeviceDiscoveryAgent
Function (basic: parameter, return value)
Decimal to hexadecimal
Sword finger offer 04 Search in two-dimensional array