Random 在Groovy中生成随机数并传递给方法

Random 在Groovy中生成随机数并传递给方法,random,groovy,Random,Groovy,我有select(inta,intb,intc)方法,我想传递3个随机生成的值和select()。因此,我: public void select() { Random random = new Random() def values= [] (1..3).each { values<< random.nextInt(100 + 1) } select(values[0], val

我有
select(inta,intb,intc)
方法,我想传递3个随机生成的值和
select()
。因此,我:

public void select() {
        Random random = new Random()
        def values= []
        (1..3).each {
            values<< random.nextInt(100 + 1)
        }
        select(values[0], values[1], values[2])
    }
public void select(){
Random Random=新的Random()
def值=[]
(1..3)每个{
值您可以这样做:

def select() {
    select(*new Random().with { r -> (1..3).collect { r.nextInt() } })
}
或者,如果您不喜欢带有
,并且希望它更具解释性:

def select() {
    def r = new Random()
    def args = (1..3).collect { r.nextInt() }
    select(*args)
}
您可以这样做:

def select() {
    select(*new Random().with { r -> (1..3).collect { r.nextInt() } })
}
或者,如果您不喜欢带有
,并且希望它更具解释性:

def select() {
    def r = new Random()
    def args = (1..3).collect { r.nextInt() }
    select(*args)
}

如果使用Java 8,则可以使用生成无限流的Random.ints()方法,并使用limit(3)查看前三个:


再次使用splat操作符展平数组

如果使用Java 8,可以使用生成无限流的Random.ints()方法,并使用limit(3)查看前三个:


再次使用splat操作符展平数组

我就知道了。Groovy可以做得更短。谢谢@tim_yates。但是在select(*args)中*在args前面是什么意思?@Xelian这是我知道的。Groovy可以做得更短。谢谢@tim_yates。但是*在select(*args)中args前面是什么意思?@Xelian这是