Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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
Scala 有没有一种方法可以迭代一个不成形的HMap(异构映射)的内容?_Scala_Shapeless - Fatal编程技术网

Scala 有没有一种方法可以迭代一个不成形的HMap(异构映射)的内容?

Scala 有没有一种方法可以迭代一个不成形的HMap(异构映射)的内容?,scala,shapeless,Scala,Shapeless,在将源AST1转换为目标AST2(在scala中构建DSL编译器)时,我试图实现某种多态缓存。因为我想让缓存保留翻译结果的精确类型,所以我尝试了Shapess HMap。它按预期工作,但是在某个时候,我需要迭代缓存内容以将其转储到一个文件,该文件必须记录翻译过程,稍后将用于构建从A2到A1的反翻译。通过查看HMap的源代码,我发现有一个底层HashMap[Any,Any],我无法访问,因为它不是HMap中的val,而且我发现HMap实际上是一个多态函数值,这意味着我可以将它应用于与HMap键类型

在将源AST1转换为目标AST2(在scala中构建DSL编译器)时,我试图实现某种多态缓存。因为我想让缓存保留翻译结果的精确类型,所以我尝试了Shapess HMap。它按预期工作,但是在某个时候,我需要迭代缓存内容以将其转储到一个文件,该文件必须记录翻译过程,稍后将用于构建从A2到A1的反翻译。通过查看HMap的源代码,我发现有一个底层HashMap[Any,Any],我无法访问,因为它不是HMap中的val,而且我发现HMap实际上是一个多态函数值,这意味着我可以将它应用于与HMap键类型子集对应的HList,但我真正想做的是能够折叠一个多态函数,该函数在这个HMap上接受polymorhic(key,value)参数,以另一种形式检索其内容(例如,在标准哈希映射的元组中切片)。有办法吗? 最好。

去年的一个类似问题。