比方说,我有这样的集合:斯卡拉是否允许这种提取器?
val a = Array(Array(1,2,3,4,5),Array(4,5),Array(5),Array(1,2,6,7,8))
有没有办法来定义一个提取器,其将在以下方式工作:
a.foreach(e => {
e match {
case Array(ending with 5) =>
case _ =>
}
})
很抱歉的伪代码,但我不知道如何表达它。有没有办法匹配5个作为最后一个元素的东西?如果我想匹配1作为第一个元素和5作为最后一个元素的东西呢?这可以适用于各种长度的数组(请注意,我特意为示例中的数组选择了不同的长度)。
谢谢!
,这是非常密切的关系:http://stackoverflow.com/questions/6697645/scala-get-first-and-last-elements-of-list-using-pattern-matching –
尽量避免解构数组超过提取器,它们被循环/复制到Seq并具有O(n)复杂性。 – lisak