繁体   English   中英

带数组的Groovy简单函数

[英]Groovy simple function with array

我最近开始学习Groovy。 我不知道用Groovy编写简单函数的最佳方式:函数必须将数组中的每个元素乘以2(如果为正数),并除以3(如果为负数)。 我写了一些类似Java的代码:

def array = [5,-8,1,4,7,3,-2,-10,5,0,4]

public void fun(){
    for(int i = 0; i < array.size; i++){
        if(array[i] > 0) array[i] = array[i] * 2;
        else array[i] = array[i] / 3
    }
}
def array = [5,-8,1,4,7,3,-2,-10,5,0,4].collect { it > 0 ? it * 2 : it / 3 }

或者,如果您想将其分为两行:

def array = [5,-8,1,4,7,3,-2,-10,5,0,4]
array = array.collect { it > 0 ? it * 2 : it / 3 }

您可以在此处找到collect方法的文档。 您可能还需要阅读闭包

您可以将Robby Cornelissen的方法与collect ,这将创建新的数组。 但是,如果您想修改原始数组(例如在当前代码中),则可以如下编写:

array.eachWithIndex { it, index -> 
    array[index] = it > 0 ? it * 2 : it / 3
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM