删除Scala中List的第一个元素



我正试图使用递归函数遍历List[Char]中的每个元素,以检查元素的出现次数。我知道有更简单的方法,甚至可能是函数来做到这一点,但有什么方法可以只删除列表的第一个位置吗?

我试着使用drop,甚至使用了下面的狙击,但它什么也没用,test是列表的名称:

def delete(i: Int) = test.take(i) ++ test.drop((i+1));

我试图避免使用ListBuffer,并尝试转换为Array,但再次失败。

您的功能几乎可以删除第i个位置的项目,我只需要添加"测试"列表作为参数:

scala> def delete[A](test:List[A])(i: Int) = test.take(i) ++ test.drop((i+1))
delete: [A](test: List[A])(i: Int)List[A]
scala> delete((1 to 10).toList)(3)
res0: List[Int] = List(1, 2, 3, 5, 6, 7, 8, 9, 10)

我认为你试图使用函数delete对"测试"产生一些影响,但List是不可变的,函数delete不会产生副作用,它只是返回新的List

最新更新