我想访问第一个元素的引用
List(Some(1), None) match {
case x@Some(1) :: xs => x
case _ => None
}
res0: java.io.Serializable = List(Some(1), None)
模式匹配正确。
但我希望x
为Some(1)
,即列表的头部, NOT 列表本身。
我如何使用提取器 AND 引用该元素?
答案 0 :(得分:1)
我只是将元素包装在括号中
val lst = List(Option(1), None)
lst match {
case (x@Some(1)) :: xs => x
case _ => None
}
res0: Option[Int] = Some(1)
它也适用于多个提取器!
val lst = List(Option(1),Option(2), None)
lst match {
case (x@Some(1)) :: (y@Some(2)) :: xs => y
case _ => None
}