Scala 清单有哪些限制?

发布于 2024-11-01 17:33:25 字数 1028 浏览 1 评论 0原文

Scala 的 Manifest 是一种解决由于 JVM 缺乏具体化泛型而导致的某些类型擦除问题的方法。

它们在其他几个问题中进行了讨论;这里有一些:

其中一条评论提到“此功能是实验性的,在某些情况下它不起作用。尽管如此,它仍然可以走很长的路。” (Daniel Sobral)

Manifest 方法在哪些情况下会失效?为什么?

Scala's Manifests are a way to get around some type erasure problems due to the JVM's lack of reified generics.

They are discussed in several other questions; here are a few:

One of the comments mentions that “This feature is experimental, and there are cases in which it doesn't work. Still, it can go a long way.” (Daniel Sobral)

What are the cases where the Manifest approach breaks down and why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江心雾 2024-11-08 17:33:25

最重要的案例应该是 Scala 团队错误跟踪系统中的开放票证。我发现以下内容:

我相信总体思路是,清单将成为计划/即将推出的 Scala 反射库的一部分,并且除了使用它们之外在数组的上下文中,“风险自负”(参见)。

The most important case should be open Tickets in the Scala teams bug tracking system. I found the following:

I believe the general idea is, that Manifests will be part of the planned/upcomming Scala reflection library and apart from using them in the context of Arrays is "on your own risk" ( see ).

去了角落 2024-11-08 17:33:25

还有一件事:

    scala> class C;
    defined class C

    scala> trait T;
    defined trait T

    scala> manifest[C] <:< manifest[C with T]
    res0: Boolean = true

根据,清单已弃用2.10 所以他们没有用它们修复错误。

One more:

    scala> class C;
    defined class C

    scala> trait T;
    defined trait T

    scala> manifest[C] <:< manifest[C with T]
    res0: Boolean = true

I've not even reported it since, according to this, manifests are deprecated in 2.10 so they are not fixing bugs with them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文