问题标签 [scala-2.13]
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 2.13 中,如何在宏中使用实际的 TypeTag?
此功能似乎已被SI-6186删除,并且无法使用任何机制来替换它
我在其提交消息中发现了以下注释:
现在我们通过从宏实现中禁止 TypeTag 来恢复被破坏的平衡。这会强制任何人使用 AbsTypeTags,如果有人想检查输入是否存在抽象类型,则可以手动进行。
“抽象类型的存在”和“手动执行”是什么意思?有人可以给我一个具体的例子吗?
scala - 下载 org.scalameta 时出错:semanticdb-scalac_2.13.6:4.4.10
我最近升级到 Scala 2.13.6,我看到:
下载 org.scalameta 时出错:semanticdb-scalac_2.13.6:4.4.10
当我尝试构建时。
当我升级到 2.13.5 时,我遇到了类似的错误,但能够添加semanticdbVersion := "4.4.11"
到build.sbt以使其工作。
这次不行。
scala - 为什么我可以在 Future.traverse 的第一个参数中使用 `to`,而不能使用 `until`?
为什么我可以使用为 的第一个参数to
构造 a而不是?请参阅以下示例 Scala 控制台交互。Range
Future.traverse
until
请注意,尽管 Scala 2.13.2 似乎具有相同的行为,但我将 Scala 2.13.5 用于控制台。
对于它的价值,我注意到to
返回Range.Inclusive
和until
返回Range.Exclusive
。但是两者都 extend Range
,所以我不知道这两种类型之间有什么不同,以至于Future.traverse
可以将一个而不是另一个作为第一个参数。
scala - 通过scala中的反射检查两种类型是否等价
我有一些代码:
由于这段代码会运行很多,因此我正在尝试对其进行很多优化,因此我正在尝试组合 combine 函数的前两行。为此,我认为代码看起来像这样:
有什么办法可以让代码检查这两种类型是否相同,这样我就不必匹配所有情况?
scala - 如何告诉 scalac 抑制警告是宏生成的代码?
我目前正在使用一个宏(ZIO's @mockable
),其生成的代码导致编译错误,导致我的构建失败:
我怎样才能抑制这个警告?我试过添加"-Wconf:src=.*<macro>:silent"
(有和没有转义<
和>
)但没有运气。
scala - 案例类上的 Scala 宏类型 Args 自省
我有一个库,可以在编译时为案例类生成映射,它工作得很好,除非我传入一个通用类型,比如:(Foo[Bar]
参见https://github.com/outr/fabric/blob/master/core/共享/src/main/scala-2/fabric/rw/RWMacros.scala#L32)。caseClass[Foo[Baz]]
当我用typeSignature
代表调用宏时Bar
,不是Baz
。我可以tpe
在编译时看到它Foo[Baz]
,但我不知道如何从Bar
泛型类型映射到Baz
列表中的typeArgs
。
scala - Scala 2.13 迁移
我正在将 Play 2.8.8 项目从 Scala 2.12 迁移到 2.13。
我在播放路线文件中有一个非常奇怪的错误:
method right in class Either is deprecated (since 2.13.0): Either is now right-biased, use methods directly on Either
.right
路由文件、生成的 Scala 路由文件或相关控制器中没有调用。
路线文件:
感谢您提供任何指导,这可能是此错误的根源。
scala - ArrayBuffer.addOne 和 ArrayBuffer.append 有什么区别?
2.13.3 API 说:
将单个元素添加到此数组缓冲区。
将给定元素附加到此缓冲区。
他们似乎做同样的事情?
scala - breakOut 的转换 - 使用迭代器还是视图?
Scala 2.13 迁移指南包含有关如何移植的说明collection.breakOut
:
collection.breakOut
不再存在,使用.view
and.to(Collection)
代替。
概览表中的以下几段有:
描述 旧代码 新代码 自动迁移规则 collection.breakOut
不复存在val xs: List[Int]
= ys.map(f)
(collection.breakOut)
val xs =
ys.iterator.map(f).to(List)
Collection213Upgrade
scala-collection-migration
重写规则使用.iterator
. 两者有什么区别?有理由偏爱其中一个吗?
scala - 如何使函数在 Scala 2.13 中使用不同的集合类型?
以下函数或多或少地接受任何集合并将其返回过滤:
如何使用 Scala 2.13 实现相同的目标?IterableLike
那里不再存在。我应该以某种方式使用更高种类的类型吗?