问题标签 [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 - 如何使隐式可用于内部功能
我想在包装函数中定义隐式值并使其可用于内部函数,到目前为止,我设法通过从包装器传递隐式变量来做到这一点:
是否可以避免implicit b: B =>
并implicit val b: B = B()
提供给内部功能块?
scala - 使用 doc 命令编译和运行 dotty 代码
我克隆了dotty并将其添加到我的PATH(我是Linux用户)之后,我使用dotty创建了HelloWorld项目并尝试使用dotc
和dotr
命令编译和运行它,如下所示:
我收到了这个错误:
有什么建议么 ?
scala - 新的 dotty 运行时完全死在我身上
周六早上在这里。尝试学习新的 Scala 编译器 dotty。
使用安装在我的 Mac 上
安装成功。我有版本
创建的目录
把这段代码写在Hello.scala
我能够编译它
.class
有一堆.tasty
文件
接下来我做了
现在我得到了一个错误的大规模“爆炸”,dotr 运行时完全死亡并退出。
我做了什么导致这次爆炸?这不是一个友好的错误消息。
scala - Dotty 无法推断具有抽象类型的类型参数特征的通用 Scala 函数的结果类型
一个简单的价值层次
想象一下这个简单的特征Value
,其中每个实现类都有value
某种类型T
。
我们有两个不同的实现类分别表示Int
和String
值。
键入安全的值选择
如果我们有一个List
值,我们希望有一种类型安全的方式来选择特定类型的所有值。类Values
及其伴随对象帮助我们做到这一点:
所有这些在 Scala 2.13 和 Dotty 0.20.0-RC1 中都可以正常工作,因此有一个混合值列表……</p>
…我们可以选择元素并将它们作为正确的类型返回——所有这些都在编译时检查:
在 Dotty 中选择一个值Option[T]
失败
但是,如果我们添加这个函数来选择值作为它们的T
类型(即Int
和String
)并将其作为Option
…</p>
…然后在 Scala 2.13 中一切正常:
但在 Dotty 0.20.0-RC1 中,这不能编译:
我们可以通过添加一个类型参数来解决这个问题,getValueInnerOption
它将返回类型和抽象类型T
联系在一起,并允许我们指定返回类型。
不幸的是,这意味着我们将不得不在调用站点添加T
(ie Int
or String
) 的实际类型,这很遗憾,因为它只是样板文件。
Dotty 中的错误或该怎么办?
似乎 Dotty 已经知道上限T
是什么,但无法将该知识传播到函数的结果类型。String
如果尝试从 an请求 a 可以看出这一点IntValue
:
那么原始代码(没有类型参数U
)是否可以在最终的 Scala 3.0 中工作,还是需要以不同的方式编写?
scala - 如何在 Dotty 中使用给定?
我正在查看页面Dotty
下的文档Contextual Abstractions
,我看到了Given Instances
.
给定的实例(或者简单地说,“给定的”)定义了某些类型的“规范”值,这些值用于综合给定子句的参数。例子:
但是文档中的这个示例从未解释过如何使用given
. 我拉了测试Dotty
示例项目并尝试使用它,但我不太了解它。
它是一个新的关键字吗?我们进口它吗?还是我错过了什么。
scala - 如何在dotty中解包元组中的元素类型?
假设我有一个类定义为:
我想编写一个通用方法,将 tuple 解压缩为type(Box[A1](a1), .., Box[An](an))
的 tuple 。(a1, .., an)
(A1, .., An)
我试过Match Types
没有运气:
scala - 如何将两个元组与兼容的类型结合起来?
假设我有两个元组,第一个是类型为值的元组(V1, V2, .., Vn)
,
第二个是类型为函数的元组(V1 => V1, V2 => V2, .., Vn => Vn)
。
现在我想将这两个元组(f1(v1), v2(v2), .., fn(vn))
与 type结合起来(V1, V2, .., Vn)
。
我不知道如何在scala 3.0(即dotty)中得到这个。
编辑:我查看了 shapeless 的源代码并得到了一个(部分工作)解决方案:
我不知道为什么apply
方法的返回会丢失它的类型。
scala - 给定关键字在 Scala 3 或 dotty 中如何工作?
我正在浏览 Scala 3 文档。他们引入了given
关键字,它被认为是 Scala 2 的替代品implicit
。代码在这里
我在这里很困惑,下面的代码中发生了什么:
Ord[T]
它是在given
关键字还是其他东西中实例化?