首页 > 解决方案 > Scala:使用if语句对列表项进行模式匹配时,简单模式的非法开始

问题描述

我想使用 if 语句对列表项进行模式匹配。但是,我在 if 语句之前的空格处出现错误,说“简单模式的非法开始”。使用 IF 语句对列表项实现模式匹配的正确方法是什么?

def myMethod(xs: List[Int]): Int= {

xs match {
    case Nil => 0

    case i :: if (i % 2 == 0) => i
  }


}

标签: scala

解决方案


_在警卫面前失踪if

def myMethod(xs: List[Int]): Int = xs match {
  case Nil => 0
  case i :: _ if (i % 2 == 0) => i
}

推荐阅读