【Groovy】循环控制 ( Number 注入函数实现循环 | times 函数 | upto 函数 | downto 函数 | step 函数 | 闭包作为最后参数可写在外面 )(一)

简介: 【Groovy】循环控制 ( Number 注入函数实现循环 | times 函数 | upto 函数 | downto 函数 | step 函数 | 闭包作为最后参数可写在外面 )(一)

文章目录

前言

一、times 循环函数

二、upto 循环函数

三、downto 循环函数

四、step 循环函数

1、step 循环函数递增操作

2、step 循环函数递减操作

五、闭包作为参数的使用规则

1、闭包作为最后一个参数可以写到括号外面

2、函数参数括号可以省略、参数使用逗号隔开

六、完整代码示例

前言


Groovy 为 Number 类实现的注入函数 , 也能实现循环 , 通过向注入的函数传入闭包参数 , 即可实现循环操作 ;






一、times 循环函数


Number 的注入函数 : 在 times 函数中 , 传入闭包 , 闭包中就是循环内容 ;



 

/**
     * 从零开始多次执行闭包。每次都将当前索引传递给闭包。
     * Example:
     * <pre>10.times {
     *   println it
     * }</pre>
     * Prints the numbers 0 through 9.
     *
     * @param self    a Number
     * @param closure 闭包要调用多次
     * @since 1.0
     */
    public static void times(Number self, @ClosureParams(value=SimpleType.class,options="int")  Closure closure)



代码示例 :


   

// 循环 10 次 , 每次获取获取当前循环的此处 , 取值 0 ~ 9
        // Groovy 向 Number 类中注入的 times 方法
        println ""
        print "( 7 ) : "
        10.times {
            // Integer it 就是每次的循环次数
            print it + " "
        }


执行结果 :


( 7 ) : 0 1 2 3 4 5 6 7 8 9






二、upto 循环函数


upto 循环函数 : 传入一个大于 Number 的数值 , 自增循环 ;



 

/**
     * 从该数字迭代到给定的数字(含),每次递增一。
     *
     * @param self    a Number
     * @param to      another Number to go up to
     * @param closure the closure to call
     * @since 1.0
     */
    public static void upto(Number self, Number to, @ClosureParams(FirstParam.class) Closure closure)



代码示例 :


   

// Groovy 向 Number 类中注入的 upto 方法
        println ""
        print "( 8 ) : "
        10.upto(20, {
            // Integer it 就是每次的循环次数
            print it + " "
        })


执行结果 :


( 8 ) : 10 11 12 13 14 15 16 17 18 19 20






三、downto 循环函数


downto 循环函数 : 传入一个小于 Number 的数值 , 自减循环 ;




 

/**
     * 从这个数字迭代到给定的数字,每次递减一。
     *
     * @param self    a Number
     * @param to      another Number to go down to
     * @param closure the closure to call
     * @since 1.0
     */
    public static void downto(Number self, Number to, @ClosureParams(FirstParam.class) Closure closure)



代码示例 :


 

// Groovy 向 Number 类中注入的 downto 方法
        println ""
        print "( 9 ) : "
        20.downto(10, {
            // Integer it 就是每次的循环次数
            print it + " "
        })


执行结果 :


( 9 ) : 20 19 18 17 16 15 14 13 12 11 10






四、step 循环函数


step 循环函数 : 传入一个值 to , 以 stepNumber 步长进行迭代 ;


 

/**
     * 使用步长增量从该数字迭代到给定数字。每个中间编号都传递给给定的闭包。例子:
     * <pre>0.step( 10, 2 ) {
     *   println it
     * }</pre>
     * Prints even numbers 0 through 8.
     *
     * @param self       a Number to start with
     * @param to         a Number to go up to, exclusive
     * @param stepNumber a Number representing the step increment
     * @param closure    the closure to call
     * @since 1.0
     */
    public static void step(Number self, Number to, Number stepNumber, Closure closure)


1、step 循环函数递增操作


代码示例 :


 

// Groovy 向 Number 类中注入的 step 方法
        println ""
        print "( 10 ) : "
        10.step(30, 2, {
            // Integer it 就是每次的循环次数
            print it + " "
        })


执行结果 :


( 10 ) : 10 12 14 16 18 20 22 24 26 28



目录
相关文章
|
5月前
|
关系型数据库 MySQL
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
165 1
|
Oracle 关系型数据库
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
131 0
|
6月前
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
103 0
|
6月前
|
SQL 关系型数据库 MySQL
Greenplum【SQL 02】ROW_NUMBER编号函数使用方法举例
Greenplum【SQL 02】ROW_NUMBER编号函数使用方法举例
156 0
|
存储 JavaScript 前端开发
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
83 0
|
存储 JavaScript 前端开发
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
【JS交互埋坑】事件函数自动将数字字符串String转为数值Number
118 0
|
机器学习/深度学习 人工智能 Oracle
在Oracle中,TO_CHAR()、TO_NUMBER()和TO_DATE()函数的使用方法以及作用
在Oracle中,TO_CHAR()、TO_NUMBER()和TO_DATE()函数的使用方法以及作用
424 0
|
SQL Oracle 关系型数据库
Oracle-分析函数之排序后顺序号row_number()
Oracle-分析函数之排序后顺序号row_number()
101 0
|
数据格式 索引
🍉一文辨析Number()函数、parseInt()函数与parseFloat()函数
🍉一文辨析Number()函数、parseInt()函数与parseFloat()函数
353 2
|
SQL 监控 数据库
网站流量日志分析--统计分析--分组 topN--row_number over 函数使用|学习笔记
快速学习网站流量日志分析--统计分析--分组 topN--row_number over 函数使用
271 0
网站流量日志分析--统计分析--分组 topN--row_number over 函数使用|学习笔记