我试图使用递归函数遍历List [Char]中的每个元素,以检查元素的出现次数。我知道有更简单的方法,甚至可能有功能,但是有没有办法只删除List的第一个位置?
我尝试使用drop,甚至使用了以下剪辑但它没有做任何事情,其中test是列表的名称:
def delete(i: Int) = test.take(i) ++ test.drop((i+1));
我试图避免使用ListBuffer,并尝试转换为Array,但再次没有成功。
答案 0 :(得分:1)
你的功能几乎可以在第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)
我认为你试图对“测试”做出一些影响。使用函数删除但List是不可变的,函数delete不会产生副作用,它只返回新的List