在 Scala 中删除列表的第一个元素

Delete first element of List in Scala

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

我试过使用 drop,甚至使用了下面的截图,但它什么也没做,其中 test 是列表的名称:

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

我试图避免使用 ListBuffer,并尝试转换为 Array 但再次没有成功。

你的函数几乎可以删除第 i 个位置的项目,我只需添加 'test' 列表作为参数:

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 对 'test' 产生一些影响,但 List 是不可变的,函数 delete 不会产生副作用,它只是 returns new List