scala - 错误: not found: value:::

标签 scala compiler-errors pattern-matching

我可以这样创建一个列表:

val value = List(1) ::: 2 :: List(3)

现在,我试图像这样分解该列表:
value match { case a ::: b :: c => (a, b, c) }

但我得到error: not found: value :::

为什么我收到此错误。为什么这种模式不起作用,我应该怎么用呢?

最佳答案

假设你有

val xs = List(1, 2, 3, 4)

并假设有一个提取器对象可以提取集合前缀。应该搭配什么
case a ::: b :: c => (a, b, c)

是(选择所有适用项)
  • (List(1, 2, 3), 4, Nil)
  • (List(1, 2), 3, List(4))
  • (List(1), 2 , List(3, 4))
  • (Nil, 1, List(2, 3, 4))

  • 因为有不止一种匹配模式的方法,所以上述提取器不存在。相反,您可以使用以下内容。
    value match { case a :: b :: c => (List(a), b, c) }
    

    关于scala - 错误: not found: value:::,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581335/

    相关文章:

    ruby - 如何在 IRB 中加载 ruby​​ 脚本?

    Scala Akka TCP 角色

    c++ - BOOST图cc1plus : out of memory allocating

    java - Antlr 可以将嵌入式语法路由到单独的文件进行处理吗?

    sql-server-2008 - 如何使用LIKE执行区分大小写的搜索?

    java - 正则表达式在固定位置匹配缺失的组

    python - 否定先前匹配的词组

    scala - 如何解决在 Scala 中采用相同输入类型的模糊隐式转换方法?

    scala - 按键合并 map

    scala - 阅读 Scala DSL 代码的最佳方法是什么?