当前位置:网站首页>[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
边栏推荐
猜你喜欢
![[crampon game] MC tutorial - first day of survival](/img/81/82034c0382f545c39bd8c15f132ec7.jpg)
[crampon game] MC tutorial - first day of survival

2022-2028 global and Chinese video coding and transcoding Market Research Report
![[illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording](/img/11/b55f85ef9e1f22254218cb9083b823.png)
[illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording

Aperçu en direct | Services de conteneurs ACK flexible Prediction Best Practices
![[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

如何优雅的获取每个分组的前几条数据

2022-2028 global and Chinese FPGA prototype system Market Research Report

Special information | real estate and office buildings - 22.1.9

指针函数(基础)

Fonction (sujette aux erreurs)
随机推荐
Neural network and deep learning Chapter 1: introduction reading questions
防护电路中的元器件
Data security -- 14 -- Analysis of privacy protection governance
Qt蓝牙:搜索蓝牙设备的类——QBluetoothDeviceDiscoveryAgent
Decimal to hexadecimal
MacBook installation postgresql+postgis
函数(基本:参数,返回值)
JMeter -- distributed pressure measurement
PHP读取ini文件并修改内容写入
jmeter -- 分布式压测
电源管理总线 (PMBus)
Is there a sudden failure on the line? How to make emergency diagnosis, troubleshooting and recovery
Matplotlib draws three-dimensional scatter and surface graphs
2022-2028 global and Chinese equipment as a Service Market Research Report
Thematic information | carbon, carbon neutrality, low carbon, carbon emissions - 22.1.9
如何进行「小步重构」?
Neural networks and deep learning Chapter 2: machine learning overview reading questions
Solution of circular dependency
[uniapp] system hot update implementation ideas
Function template