38得票6回答
什么是Dotty?

我正在阅读关于Scala 3的内容,发现了Dotty。我试图理解它是什么。有人说"它是一个新编译器",有人说"它是Scala 3的一部分",还有人说"Dotty是新的Scala 3"。 有人能够向我解释一下Dotty到底是什么吗?用通俗易懂和技术术语都可以。 附言:我已经阅读了StackO...

30得票2回答
如何使用Scala编程以与Dotty保持向前兼容性

在最近的奇怪循环(Strang Loop)中,Martin Odersky在他的演讲中揭示了他对Scala未来版本Dotty的愿景。我知道这还是正在进行中的工作,它甚至可能由于许多可能的向后兼容性问题而不能流入Scala(至少不会非常快)。但如果发生了这种情况,我们今天应该如何编写Scala程...

19得票1回答
我能在IntelliJ中用Dotty编写代码吗?是否可以使用德语编写?

怀疑这篇文章至少部分是愚人节玩笑,于是我开始在我的Linux笔记本上安装Dotty,并惊喜地发现它似乎完全正常 - 我能够成功地从REPL中获取给定的德语斐波那契函数。 现在我想在IntelliJ IDE中使用Dotty / Scala来编写德语代码,但到目前为止我还没有成功实现,就连用Do...

14得票1回答
案例类构造函数参数类型取决于先前参数的值

我想要做以下事情trait Stateful { type State } case class SystemState(system: Stateful, state: system.State) // does not compile 换言之,state的类型取决于(system的值...

13得票1回答
Dotty会如何改变Scala中的纯函数式编程?

在2013年的这个问题中,Odersky先生指出,由于高阶和存在类型的削弱,Scalaz等库是否能够存在(至少在它们目前的状态下)取决于Dotty的发展情况。 随着时间的推移,Dotty对Scalaz和Cats的影响已经被阐明了吗?像内置效果和记录之类的建议特性会改变这些项目的范围吗? 我...

10得票1回答
有没有一种简单的方法来使用 Dotty 编译 sbt 项目?

现在看起来Dotty已经准备好编译更大型的项目了,我想知道是否有一种简单的方法可以将其用作sbt项目中Scalac的即插即用替代品?就像如果我有以下的build.sbt:name := "Foo" scalaVersion := "2.11.7" 我能采取哪些步骤来在这里将Scalac替换为...

10得票1回答
Scala 3宏如何实现通用特质

我想要实现一个关于某个特性 A 的代理(例如将方法调用委托给某个rpc调用),像这样: def clientProxy[A](using Type[A], Quotes): Expr[A] = { import quotes.reflect._ val defTrees...

10得票1回答
如何在Dotty宏中访问case类的参数列表

我正在尝试学习dotty中的元编程,特别是编译时代码生成。我认为通过构建东西来学习是一个不错的方法。因此,我决定制作一个CSV解析器,将行解析为案例类。我想使用dotty宏来生成解码器。 trait Decoder[T]{ def decode(str:String):Either[Pa...

8得票1回答
Dotty提供了什么来替代类型投影?

我一直在了解Dotty,因为它似乎即将成为Scala 3,并注意到类型投影被认为是“不安全”的并从语言中删除... 这似乎很糟糕,因为我看到过几种情况下它们非常有用。例如: trait Contents class Foo extends Contents class Bar extend...

8得票1回答
Scala 3(Dotty):使用宏引用对一个函数进行模式匹配

我正在尝试使用Scala 3.0.0-M2中的宏获取函数名称。 我想到的解决方案使用了TreeAccumulator。 import scala.quoted._ inline def getName[T](inline f: T => Any): String = ${getNam...