given
正是在这样的背景下Int
类型类的成员Ord
对应于 Scala 2 通过提供类型类实例implicit
定义
implicit object intOrd extends Ord[Int] {
def compare(x: Int, y: Int) =
if (x < y) -1 else if (x > y) +1 else 0
}
如中所解释的与 Scala 2 的隐含关系 https://dotty.epfl.ch/docs/reference/contextual/relationship-implicits.html#given-instances.
Scala 3 示例 - 更好的半群和幺半群 https://www.slideshare.net/pjschwarz/scala-3-by-example-better-semigroup-and-monoidPhilip Schwarz 的幻灯片对类型类的 Scala 2 与 Scala 3 实现进行了出色的分步和并排比较,例如,
相关问题:如何在Dotty中使用given? https://stackoverflow.com/q/59456843/5205022
关于评论,可能会提早提出这个问题,请考虑类似的问题德乌萨奎鲁斯 https://contributors.scala-lang.org/t/updated-proposal-revisiting-implicits/3821/238 in 重温隐式 https://contributors.scala-lang.org/t/updated-proposal-revisiting-implicits/3821?u=mario-galic
只是出于好奇,我们是否真的考虑改变隐式
再次在 Dotty 0.22 和 Scala 3 之间?我正在尝试衡量功能
稳定性和语法是其中的很大一部分。
奥德斯基replies https://contributors.scala-lang.org/t/updated-proposal-revisiting-implicits/3821/242?u=mario-galic
就我而言,我希望我们已经达到了一个固定点。我
我实际上对当前的提议非常满意。如果有人有一个
好主意如何在接下来的某个方面进一步改进
当然,我很乐意考虑几周。但我的期望是我们
现在基本上已经完成了。
如此看来given
将成为 Scala 3 的一部分。