Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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 副产品的运行时成本?_Scala_Shapeless - Fatal编程技术网

Scala 副产品的运行时成本?

Scala 副产品的运行时成本?,scala,shapeless,Scala,Shapeless,在阅读了结论的第一句话之后: 在本文中,我演示了如何为ADT创建通用解决方案,而不依赖于昂贵的运行时特性,如反射 这是否意味着Shapess的副产品不使用运行时反射或投射,这与Scala中的情况相反?我是这篇博文的作者。我认为这是一个误解:我不是有意暗示ADT依赖于运行时反射。我指的是引言中的这句话: 传统上,泛型程序是在反射API的帮助下编写的 据我所知,ADT不使用运行时反射,但如果没有shapeless,就没有太多的选择以通用方式遍历ADT。实现这一点的一种方法是对字段进行反射和迭代。您也

在阅读了结论的第一句话之后:

在本文中,我演示了如何为ADT创建通用解决方案,而不依赖于昂贵的运行时特性,如反射


这是否意味着Shapess的副产品不使用运行时反射或投射,这与Scala中的情况相反?

我是这篇博文的作者。我认为这是一个误解:我不是有意暗示ADT依赖于运行时反射。我指的是引言中的这句话:

传统上,泛型程序是在反射API的帮助下编写的


据我所知,ADT不使用运行时反射,但如果没有shapeless,就没有太多的选择以通用方式遍历ADT。实现这一点的一种方法是对字段进行反射和迭代。您也可以编写代码遍历ADT和每个ADT节点上的模式匹配,但该解决方案仅适用于您的ADT,而不适用于所有其他ADT,即解决方案不是通用的。

也不要使用运行时反射。我还没有读过这篇文章,但我知道Shapeless及其副产品,我猜Shapeless使之成为可能的一种通用实现的替代编码是通过使用反射。也许我应该说,
没有像ADT那样的运行时强制转换
?这将是一个不同的问题:)但我认为Shapess也没有。因此,我读了这篇文章,发现引用的段落非常模糊。回到我的第一条评论。我们可以把这个问题指给他看吗?希望这个答案能澄清问题。我很乐意回答关于这篇博文的任何问题。