Scala:List周围的包装,仍然使用压缩?

时间:2014-10-09 09:47:47

标签: scala

为方便起见,我在scala.collection.immutable.List附近构建了一个包装器。但是,我意识到zipped函数当然不适用于包装器。

新课程必须延伸什么特质,才能使这一目标成为可能?或者我(来自Java)对Scala使用完全错误的方法?

1 个答案:

答案 0 :(得分:1)

要扩展注释,如果您只想添加新方法,请使用隐式类而不是包装器:

implicit class ListOps[A](private val xs: List[A]) extends AnyVal {
  def stripe(take: Int, drop: Int): List[A] =
    xs.sliding(take, take + drop).flatten.toList
}

// test
val z = List(1 to 20: _*)
z.stripe(2, 3) // List(1, 2, 6, 7, 11, 12, 16, 17)