在Dotty(Scala 3)中,使用宏生成新类是否可行? Zlaja
我可以为任何Scala 3枚举类型创建一个简单的enumDescr函数。 例如: @description(enumDescr(InvoiceCategory)) enum InvoiceCategory: case `Travel Expenses` case M...
我正在尝试使用circe在Scala 3中查找简单有效的方法来(反)序列化枚举。 考虑以下示例: import io.circe.generic.auto._ import io.circe.syntax._ enum OrderType: case BUY case SELL ...
我想要实现一个关于某个特性 A 的代理(例如将方法调用委托给某个rpc调用),像这样: def clientProxy[A](using Type[A], Quotes): Expr[A] = { import quotes.reflect._ val defTrees...
目前,dotty编译器发布了其第一个RC版本,并将在接下来的几个月内发布。 我已将IntelliJ Scala插件更新为EarlyAccess,以使其与Scala 3.0配合使用,其语法高亮问题得到解决,但仍存在IntelliSense问题,建议仅为scala 2.13 API,对于Scala...
我的目标是将Scala 3代码作为字符串获取,并在运行时将其解析为Scala 3的抽象语法树。在此过程中,如果代码存在编译错误,则应将其作为一部分异常返回。 更大的目标是,如果Scala代码有效,则以Expr [T]结束,并通过拼接正确的位来执行它(我已经覆盖了这个部分)。 使用scala...
在Scala 3中,summon似乎与旧的implicitly具有相同的功能。但当我们深入研究实际示例时,我们会发现这并不是真的。例如: case class A(i: Int, s: String) val mirror = implicitly[Mirror.Of[A]] ...
我试图将自己的思维从Java背景(以及一点Scala 2)迁移到Scala 3,并实现一种版本的PartialFunction.orElse,但输入参数是联合类型而不是交集类型: trait F[A, B] extends (A => B) { def orElse[A1, ...
注意:本文旨在成为社区帖子,需要根据需要添加示例。如果您无法直接编辑答案以添加示例(无论是问题示例还是解决方案),请在评论中发布一个链接到gist(或类似内容)或添加单独的答案,稍后将进行集成。 有可能Scala 3根本不包括scala.reflect.runtime (Dotty目前并没有...