【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



上一篇:如何找到SAP ECC事务码升级到S4HANA后对应的新事务码


下一篇:C语言如何跨文件调用函数定义中声明的变量