问题标签 [f-bounded-polymorphism]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

scala - 如何将 Int 转换为有序 (Scala)

我在 Scala 中声明了一个 Value 类:

类型约束 T <: Ordered[T] 的原因是我想将compareValue 中的方法委托给value: T.

然后是一个具体的 IntValue 为:

但是,当我尝试编译此代码时,我得到以下信息:''

我认为我应该在这里使用一些隐式转换,但我不清楚如何进行。

0 投票
3 回答
229 浏览

scala - 在理解 F-Bounded Polymorphism 的道路上

甚至在到达 F 有界多态性之前,我就已经很难理解支撑它的结构了。

这种结构似乎是一个微不足道的面向对象的事情,因为它也存在于 java 中,已经让我有点困惑了。

问题是当我看到这个 trait Contained extends Container[Contained]时,感觉就像是一个无限类型的递归。

当我们定义类型 List 时,即使我们有Cons[A](a:A, tail:List[A]),我们也有case object Nil。所以递归可以以 Nil 结束。

但是在这里,我不明白我们如何不在无限递归中?以及为什么有效。

有人可以让我对此感到困惑吗?或者,如果有任何文档、博客或任何可以解释其工作原理或实现的东西。