相关疑难解决方法(0)

如何在scala中切片元组

我正在尝试切片一个元组,删除最后两个项目.我尝试使用list drop/take方法,但我无法成功获得元组.

这是我尝试的方法:

scala> val myTuple = (1, 2, 4, 5, 0, 5)
myTuple: (Int, Int, Int, Int, Int, Int) = (1,2,4,5,0,5)

scala> val myList = myTuple.productIterator.toList
myList: List[Any] = List(1, 2, 4, 5, 0, 5)

scala> val mySubList = myList.dropRight(2)
mySubList: List[Any] = List(1, 2, 4, 5)

scala> val mySubTuple = ???
Run Code Online (Sandbox Code Playgroud)

我在这里看到,在scala中,元组的列表不是(但是?).

是否有其他方法可以获得该子组(不处理myTuple._1,myTuple._2 ...)?

scala

23
推荐指数
3
解决办法
3536
查看次数

类型级编程中的协方差

我正在尝试创建类似于Scala库中的类型的Tuple,只使用:+方法通过添加N + 1st值将元组扩展为元组 - 这样我将能够递归地构造元组:

class Test {
  abstract class Tuple {
    //protected type Next[_] <: Tuple
    //def :+[T](p: T): Next[T]
  }

  case class Tuple0() extends Tuple {
    protected type Next[T] = Tuple1[T]
    def :+[T](p: T): Next[T] = Tuple1(p)
  }

  case class Tuple1[+T1](p1: T1) extends Tuple {
    protected type Next[T] = Tuple2[T1, T]
    def :+[T](p: T): Next[T] = Tuple2(p1, p)
  }

  case class Tuple2[+T1, +T2](p1: T1, p2: T2) extends Tuple {
    protected type Next[-T] = Nothing
    def :+[T](p: T): Next[T] …
Run Code Online (Sandbox Code Playgroud)

generics types scala

9
推荐指数
2
解决办法
675
查看次数

标签 统计

scala ×2

generics ×1

types ×1