问题标签 [scala-3]
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.
scala - 使用依赖类型扩展
这是我的问题的最小再现:
如您所见,我正在尝试将 Key 的静态已知类型编码到类型参数中。这不像我可以将类型key
作为 A 的类型参数,因为在我的真实示例中,它更像,class A(using g: blablah)(val key: g.Key) extends SuperClass[g.Mapping[key.type]]
但这与上述问题无关。
只是我们不能在超类的参数中使用依赖类型吗?
更新
类型成员的编码产生相同的错误:
我仍然得到
scala - Scala 3 中枚举的不变默认类型
Scala 3 现在改进了定义 ADT 的方法。一种语法糖,可以消除以通常sealed trait
方式进行操作的所有麻烦。
所以我会用一个例子来解释我的问题
在这种情况下Option1
和Option2
是 type Adt[Nothing]
,因为类型参数A
是协变的。
如果枚举是逆变的,它们将是 type Adt[Any]
。
但如果它是不变的呢?
scala - 隐式解析不再适用于 Scala 3 (Pure Config)
在我的 Scala 3 项目中,我想使用 Pure Config。但我得到以下异常:
我只是从文档中举了一个简单的例子:
我的build.sbt
样子是这样的:
我错过了什么还是目前不可能?
scala - 除了隐式之外,有没有办法在 Scala 3 中拉皮条?
有没有办法在scala 3中拉皮条?(因为隐含将在 scala 3 中被删除)那么有没有办法使用“给定和使用”来做到这一点?
在scala 2中,我通常会做这样的事情:
scala - scala3 扩展方法类型参数
这是我的 scala2 代码到 scala3 的直接翻译
我需要在调用站点指定窄操作的类型,但是扩展方法不允许该语法。这个限制有什么最好的解决方法?
这样做的目的是能够缩小集合/尝试/任何东西中的类型。窄类型类将对内部的任何内容进行平面映射,比较运行时类型,如果它匹配将 B 包装在 F 中,或者返回一个空 F
scala - Scala 3(Dotty)模式将函数与宏引用匹配
我正在尝试通过 Scala 3.0.0-M2 中的宏获取函数名称我想出的解决方案使用TreeAccumulator
调用此代码时,会生成函数的名称:
我想知道这是否可以使用引号以更简单的方式完成。
scala - Scala 2 隐式和 Scala 3 给定/使用之间的区别
implicit
Scala 2 中的关键字和Scala 3 中的given
+有什么区别using
?只是implicit
被分成了两个关键字,还是语义也不同,如果是,如何?
scala - dotty / scala3 将映射的元组类型取消映射到其组成类型
我无法将映射的元组映射到其组成类型。如何以类型安全的方式实现read
方法Impl[T]
?目前我只是用Tuple.toArray
/Tuple.fromArray
编辑(1):添加非类型安全代码
编辑 (2):当前不完整的尝试 - 包含 PolyFunction 错误
scala - quasiquote 是否从 scala 3 中删除?
我正在阅读有关 Scala 3 的元编程手册,但没有找到我在当前项目中大量使用的 quasiqotes。像这样解构树的替代方法是什么:
如何通过树解构将此类代码移植到 Scala 3?
scala - 使用新的主函数语法检查 args
使用新的主函数语法时:
@main def prog(nb: Int, stuff: String) = ...
与旧的:
def main(args: Array[String]) = ...
是否可以检查命令行上传递的参数数量?我们可以用旧语法对 args.length 进行测试。
我想生成一个自定义的语法错误,而不是“非法命令行:需要更多参数”。