从长序列中提取少量元素

时间:2017-09-01 18:19:28

标签: scala pattern-matching

要从序列中提取一些元素,Scala可以使用大小写匹配,如下所示:

row match {
            case Seq(a, b, c, d, e, f) => Seq(a,f)
            case _ => logger.warn("Warning")
            }

如果原始序列很长(例如1k),并且只想提取少量元素(例如2或3),该怎么办?

为了不写出原始序列中的所有元素(例如,省略a和f之间的1k元素),有没有办法在Scala中进行大小写匹配,可能是这样的:

 row match {
                case Seq(..., a, ..., f,...) => Seq(a,f)
                case _ => logger.warn("Warning")
                }

或类似于SQL做select a, f from Seq的东西?

1 个答案:

答案 0 :(得分:0)

感谢@jwvh的回答,使用索引访问元素非常适合这个问题。

示例可以是Seq(row(5), row(77))