Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy 为什么可以';我是否使用一个方法的多个返回值直接分配给对象属性?_Groovy_Return_Return Value - Fatal编程技术网

Groovy 为什么可以';我是否使用一个方法的多个返回值直接分配给对象属性?

Groovy 为什么可以';我是否使用一个方法的多个返回值直接分配给对象属性?,groovy,return,return-value,Groovy,Return,Return Value,基于这个问题,我编写了以下代码,它会引发编译时间错误: 代码如下: 43. Currency currency = new Currency() 44. (currency.rate_one, currency.time_one) = getDateAndRate() def getDateAndRate(){ Date date = new Date() double rate = getRate(); return [rate, date] } 我的方法有两个返回

基于这个问题,我编写了以下代码,它会引发编译时间错误:

代码如下:

43. Currency currency = new Currency()
44. (currency.rate_one, currency.time_one) = getDateAndRate()
def getDateAndRate(){
    Date date = new Date()
    double rate = getRate();
    return [rate, date]
}
我的方法有两个返回值:

43. Currency currency = new Currency()
44. (currency.rate_one, currency.time_one) = getDateAndRate()
def getDateAndRate(){
    Date date = new Date()
    double rate = getRate();
    return [rate, date]
}
抛出错误

expecting '}', found ',' @ line 44, column 26.
(currency.rate_one, currency.time_one) = getDateAndRate()
                  ^
试试这个

def (rate, time) = getDateAndRate()
currency.rate_one = rate
currency.time_one = time

我最近才学会了一个技巧,那就是将多项作业与以下内容结合起来:

with (currency) {
    (rate_one, time_one) = getDateAndTime()
}

它起作用了!但究竟为什么它不能像上面那样工作呢?因此,烦人的是,如果您想让这段代码不那么冗长,您可以更改
getDateAndRate
以接受
Currency
参数,在方法中更新它,然后返回它