当前位置:网站首页>[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
边栏推荐
- flutter 对象和列表
- 函数(易错)
- [goweb development] Introduction to authentication modes based on cookies, sessions and JWT tokens
- Leetcode 222 number of nodes of complete binary tree
- The remainder operation is a hash function
- How to remove installed elpa package
- Construction d'un Cluster redis sous Windows
- Web开发人员应该养成的10个编程习惯
- 托管式服务网络:云原生时代的应用体系架构进化
- After the deployment of web resources, the navigator cannot obtain the solution of mediadevices instance (navigator.mediadevices is undefined)
猜你喜欢

American 5g open ran suffered another major setback, and its attempt to counter China's 5g technology has failed

CUDA Programming atomic operation atomicadd reports error err:msb3721, return code 1

官宣!第三届云原生编程挑战赛正式启动!

MacBook installation postgresql+postgis

User behavior collection platform

Components in protective circuit

SQL set operation

level18

CSDN body auto generate directory

Mxnet imports various libcudarts * so、 libcuda*. So not found
随机推荐
Data security -- 14 -- Analysis of privacy protection governance
Error statuslogger log4j2 could not find a logging implementation
Wenet: E2E speech recognition tool for industrial implementation
Introduction to RT thread kernel (5) -- memory management
Thematic information | carbon, carbon neutrality, low carbon, carbon emissions - 22.1.9
Debug insights
Function template
English topic assignment (26)
WeNet:面向工业落地的E2E语音识别工具
MacBook installation postgresql+postgis
JMeter -- distributed pressure measurement
Decryption function calculates "task state and lifecycle management" of asynchronous task capability
About the prompt loading after appscan is opened: guilogic, it keeps loading and gets stuck. My personal solution. (it may be the first solution available in the whole network at present)
官宣!第三届云原生编程挑战赛正式启动!
如何进行「小步重构」?
The remainder operation is a hash function
Introduction to RT thread kernel (4) -- clock management
[Business Research Report] Research Report on male consumption trends in other economic times -- with download link
Chapter 6 text processing tools for shell programming (awk)
Function (error prone)