在Scala中,如何在不知道长度的情况下获取从第n个元素到列表末尾的列表切片?

2024-01-12

我正在寻找一种优雅的方法来获取从元素 n 开始的列表切片,而无需指定列表的长度。假设我们有一个多行字符串,我将其分成几行,然后想要获取从第 3 行开始的所有行的列表:

string.split("\n").slice(3,X)       // But I don't know what X is...

我真正感兴趣的是是否有一种方法可以获取由split调用,使其长度可以代入X在当时的slice打电话,有点像幻想_(在这种情况下,它将读作slice(3,_.length))?在 python 中,不需要指定切片的最后一个元素。

当然,我可以通过在分割后使用临时变量或创建一个具有良好语法的辅助函数来解决这个问题,但我只是好奇。


只需删除前 n 个不需要的元素:

List(1,2,3,4).drop(2)
res0: List[Int] = List(3, 4)

或者在你的情况下:

string.split("\n").drop(2)

还有配对的方法.take(n)做相反的事情,你可以把它想象成.slice(0,n).

如果您需要这两个部分,请使用.splitAt:

val (left, right) = List(1,2,3,4).splitAt(2)
left: List[Int] = List(1, 2)
right: List[Int] = List(3, 4)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Scala中,如何在不知道长度的情况下获取从第n个元素到列表末尾的列表切片? 的相关文章

随机推荐