当前位置:网站首页>[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
边栏推荐
- PHP读取ini文件并修改内容写入
- How can CIOs use business analysis to build business value?
- Live broadcast preview | container service ack elasticity prediction best practice
- Flutter 小技巧之 ListView 和 PageView 的各种花式嵌套
- Variable category (automatic, static, register, external)
- [crampon programming] lintcode decoding Encyclopedia - 872 termination process
- Neural networks and deep learning Chapter 3: linear model reading questions
- Hexadecimal to decimal
- Machine learning decision tree
- English topic assignment (27)
猜你喜欢
Qt蓝牙:搜索蓝牙设备的类——QBluetoothDeviceDiscoveryAgent
Hypothesis testing -- learning notes of Chapter 8 of probability theory and mathematical statistics
Raki's notes on reading paper: soft gazetteers for low resource named entity recognition
Key review route of probability theory and mathematical statistics examination
Uncover the seven quirky brain circuits necessary for technology leaders
File upload bypass summary (upload labs 21 customs clearance tutorial attached)
Pointer function (basic)
2022-2028 global and Chinese virtual data storage Market Research Report
Decryption function calculates "task state and lifecycle management" of asynchronous task capability
蛇形矩阵
随机推荐
WeNet:面向工业落地的E2E语音识别工具
Components in protective circuit
如何优雅的获取每个分组的前几条数据
Ffmepg usage guide
[Business Research Report] top ten trends of science and technology and it in 2022 - with download link
The principle of attention mechanism and its application in seq2seq (bahadanau attention)
What are the building energy-saving software
10 programming habits that web developers should develop
You Li takes you to talk about C language 7 (define constants and macros)
【科普】热设计基础知识:5G光器件之散热分析
2022-2028 global and Chinese equipment as a Service Market Research Report
[phantom engine UE] the difference between running and starting, and the analysis of common problems
自动语音识别(ASR)研究综述
Sword finger offer 04 Search in two-dimensional array
The remainder operation is a hash function
[popular science] basic knowledge of thermal design: heat dissipation analysis of 5g optical devices
CUDA Programming atomic operation atomicadd reports error err:msb3721, return code 1
Learning MVVM notes (1)
OWASP top 10 vulnerability Guide (2021)
TPG x AIDU|AI领军人才招募计划进行中!