当前位置:网站首页>[groovy] closure closure (customize closure parameters | customize a single closure parameter | customize multiple closure parameters | specify the default value of closure parameters)
[groovy] closure closure (customize closure parameters | customize a single closure parameter | customize multiple closure parameters | specify the default value of closure parameters)
2022-07-05 04:41:00 【Programmer community】
List of articles
- One 、 Custom closure parameter list
- 1、 Define the closure of a custom parameter
- 2、 Define closures for multiple custom parameters
- 3、 Specify default values for closure parameters
- Two 、 Complete code example
One 、 Custom closure parameter list
If you want to Closure in , Passing multiple parameters , need by Closure Specify the parameter list ;
Specify a parameter list for the closure , Need to be in closure The starting position uses " -> " Symbol , Specify the parameter list on the left side of the symbol ;
1、 Define the closure of a custom parameter
stay " -> " Write a variable to the left of the symbol a , here The variable a Can receive any type of value , This parameter can be printed in the closure a Value ;
// Define closure variables , Declare a parameter a def closure3 = {
a -> println "${a}" } // Call closure , Cannot pass in parameters closure3.call(1); closure3(2);The print result of the above closure is :
122、 Define closures for multiple custom parameters
stay " -> " Write multiple variables to the left of the symbol , Variables are separated by commas , Such as a , b , At this point, the closure can receive multiple parameters , These two parameters can be of any type ;
// 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);The result is :
1 : 23 : 43、 Specify default values for closure parameters
In closure , have access to Parameter name = The default value is The way , After specifying the default value for the closure parameter , When a closure is called , You can not pass in this parameter with default value ;
If Closure Parameters All have default values ,
- Sure No parameters are passed ;
- If you pass
1
1
1 Parameters , Meeting Assign values to parameters from left to right according to the default rules ;
If Closure Parameters , Some have default values , Some have no default values , Suppose there is
2
2
2 Parameters , Yes
1
1
1 Each has a default value ,
1
1
1 There is no default value ;
- If Pass on
2
2
2 Parameters , Then assign values from left to right ;
- If you deliver
1
1
1 Parameters , be Assign this value to a parameter that has no default value ;
Code example :
// 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 :
0 : GroovyTwo 、 Complete code example
Complete code example :
import org.codehaus.groovy.ant.Groovyclass Test {
static void main(args) {
// 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 :
121 : 23 : 40 : Groovy
边栏推荐
- CSDN body auto generate directory
- Variable category (automatic, static, register, external)
- [illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording
- Raki's notes on reading paper: code and named entity recognition in stackoverflow
- WeNet:面向工业落地的E2E语音识别工具
- [AI bulletin 20220211] the hard core up owner has built a lidar and detailed AI accelerator
- SQL set operation
- Hexadecimal to octal
- Label exchange experiment
- JVM 原理和流程简介
猜你喜欢

How should programmers learn mathematics

Components in protective circuit
![[crampon game] MC tutorial - first day of survival](/img/81/82034c0382f545c39bd8c15f132ec7.jpg)
[crampon game] MC tutorial - first day of survival

CSDN body auto generate directory

Sword finger offer 04 Search in two-dimensional array

Power management bus (pmbus)

线上故障突突突?如何紧急诊断、排查与恢复

Sequence diagram of single sign on Certification Center

User behavior collection platform

TPG x AIDU|AI领军人才招募计划进行中!
随机推荐
Download the details and sequence of the original data access from the ENA database in EBI
This is an age of uncertainty
Decimal to hexadecimal
PHP reads the INI file and writes the modified content
质量体系建设之路的分分合合
如何优雅的获取每个分组的前几条数据
Neural networks and deep learning Chapter 4: feedforward neural networks reading questions
SQL set operation
Solution of circular dependency
Serpentine matrix
[popular science] basic knowledge of thermal design: heat dissipation analysis of 5g optical devices
解密函数计算异步任务能力之「任务的状态及生命周期管理」
Debug insights
Introduction to RT thread kernel (4) -- clock management
首席信息官如何利用业务分析构建业务价值?
[goweb development] Introduction to authentication modes based on cookies, sessions and JWT tokens
函数(易错)
防护电路中的元器件
How to remove installed elpa package
托管式服务网络:云原生时代的应用体系架构进化