Groovy方法如何多次返回?

奥兰多

我正在尝试通过以下代码从排序后的地图中获取前K个元素:

//return top rank k elements
public static LinkedHashMap<String,Double> getTopRank(int i){
    //store top k elements
    LinkedHashMap<String, Double> result=new LinkedHashMap<>();
    int count=0;
    //use the static rankMap in the class
    rankMap.each {key,value->
        result.put(key, value);
        count++;
        if(count>=i){
            println "Time to return"
            return result;
        }
    }
    //in case the loop does not work
    return result;
}

我期望的是,当结果Map已经具有i个元素的大小时,该方法将返回,并为我提供一个i-size排序的地图。请注意,rankMap以我想要的特定顺序存储元素,并且其大小远大于我传递给该方法的int大小。我通过以下方式调用该方法

LinkedHashMap<String,Double> content=getTopRank(outputSize);

但是出乎意料的是,最终内容的大小rankMap不是i在控制台中,我看到了数百Time to return行。该行return result一遍又一遍地执行,直到到达末尾rankMap我很确定这条线getTopRank(outputSize)不是循环的。那令我感到奇怪的是,为什么该方法可以多次返回而不结束。是因为我在return结束语中的推销声明造成的吗?请告知或告诉我Groovy中的情况如何。更进一步,我如何才能从排序后的映射中仅获取前k个元素?

注入

您误解了Groovy的关键概念。

在结束each()之前完成执行的唯一方法是引发异常。如果要有条件退出循环,请使用标准循环类型,例如forwhile

int count=0
def result = [:]
for( def e in rankMap ){
  count++
  result[ e.key ] = e.value
  if( i <= count ) return result
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

请问如何从groovy返回json?

来自分类Dev

无法模拟用于返回的多次调用的方法

来自分类Dev

如何在目录路径中多次返回?

来自分类Dev

如何验证被多次调用的方法

来自分类Dev

如何从 groovy 中的 TimerTask 返回值

来自分类Dev

如何在不多次执行方法的情况下将返回值传递给其他类

来自分类Dev

在Python中使用scipy.odeint方法进行多次返回

来自分类Dev

使用“ with open()as file”方法,如何多次写入?

来自分类Dev

绘画方法被多次调用...如何限制呢?

来自分类Dev

如何对单个事务多次调用@Transactional方法

来自分类Dev

如何使用@BeforeClass使方法多次运行?

来自分类Dev

如何从方法返回接口

来自分类Dev

如何返回调用方法?

来自分类Dev

如何从异步方法返回?

来自分类Dev

适用于方法链接的Groovy特性返回实现类型

来自分类Dev

Groovy:地图文字上的getClass方法返回null

来自分类Dev

适用于方法链接的Groovy特性返回实现类型

来自分类Dev

使用list参数作为返回值多次调用void方法要优于返回List的方法?

来自分类Dev

Groovy:如何调用带注释的方法

来自分类Dev

如何在Groovy中声明方法引用?

来自分类Dev

如何使用 `every` 和 `any` Groovy 方法?

来自分类Dev

如何从 gradle 任务运行 groovy 方法?

来自分类Dev

python多次返回

来自分类Dev

函数的多次返回

来自分类Dev

SQL多次返回行

来自分类Dev

jQuery 事件多次返回

来自分类Dev

如何验证使用Moq已调用某个方法多次的方法?

来自分类Dev

Groovy返回JSON

来自分类Dev

如何从PHP方法返回错误?