我想定义一个通用函数来从地图中提取键,如下所示:
public list[K] keys(map[K,V] aMap) {
return [ key | key:val <- aMap ];
}
虽然没有给出语法错误,但这不起作用。有办法吗?
答案 0 :(得分:2)
您可以将其定义为
public list[&K] keys(map[&K,&V] aMap) {
return [ k | k <- aMap ];
}
请注意,键是无序的,因此将它们作为一组而不是列表返回可能更有意义。您也可以使用
将关键字或值直接从地图中投影出来,直接获取关键字或值aMap<0>
用于键组或
aMap<1>
表示值集。最后,Set模块包含一个toList函数,因此您可以在一行中执行此操作
toList(aMap<0>)
会给你与调用键功能相同的结果。