为方便起见,我在scala.collection.immutable.List
附近构建了一个包装器。但是,我意识到zipped
函数当然不适用于包装器。
新课程必须延伸什么特质,才能使这一目标成为可能?或者我(来自Java)对Scala使用完全错误的方法?
答案 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)