为什么不在Scala中使用`arg :: tail`工作模式匹配List?

时间:2015-08-15 19:57:34

标签: scala

我正在通过Coursera课程学习Scala中的函数式编程,并遇到了与语言描述不同的行为。根据关于模式匹配的讲座,第二个println语句的输出应该是false而不是true在以下Scala电子表格中:

object MatchTest {
  def test(char: Char, list: List[Char]): Boolean = list match {
    case char :: tail => true
    case _            => false
  }                                               //> test: (char: Char, list: List[Char])Boolean

  println(test('a', "ab".toList))                 //> true
  println(test('b', "ab".toList))                 //> true
}

为什么第二次测试与char :: tail匹配且与_不匹配?

0 个答案:

没有答案