当前位置:网站首页>[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
边栏推荐
- Setting up redis cluster cluster under Windows
- 指针函数(基础)
- [Business Research Report] Research Report on male consumption trends in other economic times -- with download link
- jmeter -- 分布式压测
- How to remove installed elpa package
- Neural networks and deep learning Chapter 3: linear model reading questions
- Neural network and deep learning Chapter 1: introduction reading questions
- English topic assignment (26)
- [phantom engine UE] the difference between running and starting, and the analysis of common problems
- Reading and visualization of DICOM, MHD and raw files in medical imaging
猜你喜欢
Flutter tips: various fancy nesting of listview and pageview
Sequence diagram of single sign on Certification Center
函数(易错)
电源管理总线 (PMBus)
WeNet:面向工业落地的E2E语音识别工具
level17
Construction d'un Cluster redis sous Windows
[phantom engine UE] only six steps are needed to realize the deployment of ue5 pixel stream and avoid detours! (the principles of 4.26 and 4.27 are similar)
官宣!第三届云原生编程挑战赛正式启动!
Matplotlib draws three-dimensional scatter and surface graphs
随机推荐
PHP读取ini文件并修改内容写入
[thingsboard] how to replace the homepage logo
托管式服务网络:云原生时代的应用体系架构进化
Neural networks and deep learning Chapter 2: machine learning overview reading questions
Introduction to RT thread kernel (4) -- clock management
Raki's notes on reading paper: soft gazetteers for low resource named entity recognition
WeNet:面向工业落地的E2E语音识别工具
Leetcode 222 number of nodes of complete binary tree
如何进行「小步重构」?
C26451: arithmetic overflow: use the operator * on a 4-byte value, and then convert the result to an 8-byte value. To avoid overflow, cast the value to wide type before calling the operator * (io.2)
自动语音识别(ASR)研究综述
A survey of automatic speech recognition (ASR) research
Hexadecimal to octal
Reading and visualization of DICOM, MHD and raw files in medical imaging
这是一个不确定的时代
Wenet: E2E speech recognition tool for industrial implementation
[crampon programming] lintcode decoding Encyclopedia - 1100 strange printer
Ffmepg usage guide
Variable category (automatic, static, register, external)
How to force activerecord to reload a class- How do I force ActiveRecord to reload a class?