小编Fer*_*ezk的帖子

将通用追加函数迁移到Scala 2.13集合

我有以下扩展类,将扩展类添加myAppend到任何方法SeqLike

implicit class WithAppend[A, R](s: SeqLike[A, R]) extends AnyVal {
  def myAppend(i: A)(implicit cbf: CanBuildFrom[R, A, R]): R = s :+ i
}
Run Code Online (Sandbox Code Playgroud)

如何将该代码移植到Scala 2.13并保留类似的性能特征?如果扩展类可以保持AnyVal

我尝试过的几件事:

class Extends1[R, S <: IsSeq[R]](c: R, isSeq: S) {
  def myAppend(a: isSeq.A): R = (isSeq(c) :+ a).asInstanceOf[R]
}
Run Code Online (Sandbox Code Playgroud)

但是asInstanceOf令人失望-它甚至安全吗?

我可以做:

class Extends3[S[_], A](c: SeqOps[A, S, S[A]]) {
  def myAppend(a: A): S[A] = c :+ a
}
Run Code Online (Sandbox Code Playgroud)

但是现在我们被限于表单的集合,S[A]而Scala 2.12代码可以接受任何形式R

scala scala-2.13

7
推荐指数
1
解决办法
162
查看次数

如何在 Scala 2.13 版中修复 Anorm 的未解析依赖项

我想将 anorm 依赖项导入到我的 Scala Play 框架工作项目中,但它不支持我当前的 Scala 版本。我该怎么办?

libraryDependencies += "com.typesafe.play" %% "anorm" % "2.3.9"
Run Code Online (Sandbox Code Playgroud)

显示错误:

sbt.librarymanagement.ResolveException:未解决的依赖项:com.typesafe.play#anorm_2.13;2.3.9:未找到

scala anorm scala-2.13

1
推荐指数
1
解决办法
133
查看次数

Scala 2.13用什么代替MutableList?

我正在将软件从Scala 2.12.8升级到Scala 2.13,并发现根据许多指南(如指南)已删除了MutableList集合(scala.collection.mutable.MutableList )。

例如,本指南说这是一个已弃用的集合,所以才删除了它,但是在以前的版本中我找不到该类的任何弃用。

“删除了不推荐使用的集合(MutableList,immutable.Stack等)”

我还首先升级到2.12.9(在2.13.0之前的最新版本),以检查是否有任何不推荐使用的注释,以提供有关使用什么的建议,但是在此版本中,该集合也没有被弃用。

我搜索了这个问题,但找不到很好的答案。这个问题对我和将来的升级都将是有益的。

在Scala 2.13中,我应该使用什么代替MutableList?

scala scala-collections mutablelist scala-2.13

1
推荐指数
1
解决办法
141
查看次数