问题标签 [dotty]
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 - 如何让匹配类型在 Scala 3 中正常工作
我很好奇是否可以移植我的无类型项目以使用 Scala 3 进行类型化。这是我的开始:
它不编译,它抛出一个错误:
我认为这是因为它没有将模式匹配视为 s 的“类型过滤器”,因为它认为在这种情况下 s 具有 type "tag" | "attrs" | "children"
,而模式匹配情况应该将其减少为“标记” .
如何实现我请求的行为?
scala - Scala 3 / Dotty 中的依赖元组
我正在尝试使用依赖元组列表对依赖映射进行编码。这是我所拥有的不起作用的:
我得到的只是
我想不出一种模式匹配的好方法,d.second
以便它的类型取决于 d.first。我可以添加.asInstanceOf[Array[String]]
,.asInstanceOf[String]
但这不是这里的目标,我正在尝试对代码进行类型检查。
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 - scala3 扩展方法类型参数
这是我的 scala2 代码到 scala3 的直接翻译
我需要在调用站点指定窄操作的类型,但是扩展方法不允许该语法。这个限制有什么最好的解决方法?
这样做的目的是能够缩小集合/尝试/任何东西中的类型。窄类型类将对内部的任何内容进行平面映射,比较运行时类型,如果它匹配将 B 包装在 F 中,或者返回一个空 F
scala - Scala 3(Dotty)模式将函数与宏引用匹配
我正在尝试通过 Scala 3.0.0-M2 中的宏获取函数名称我想出的解决方案使用TreeAccumulator
调用此代码时,会生成函数的名称:
我想知道这是否可以使用引号以更简单的方式完成。
scala - dotty / scala3 将映射的元组类型取消映射到其组成类型
我无法将映射的元组映射到其组成类型。如何以类型安全的方式实现read
方法Impl[T]
?目前我只是用Tuple.toArray
/Tuple.fromArray
编辑(1):添加非类型安全代码
编辑 (2):当前不完整的尝试 - 包含 PolyFunction 错误
scala - Scala3 宏调用 TypeTree 的类型类实例(无类型 arg)
给这样Show
的类型类,我想为案例类生成展示,比如
但是该showInstance
部分不会编译,那么如何在Show[X]
这里调用一个隐式?