小编use*_*864的帖子

在Scala中,双冒号(或冒号)::是什么意思?

我在sbt构建Scala项目(重复输入 :)时遇到问题,META-INF/MANIFEST.MF以下几行代码解决了该问题:

assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) =>
    (xs map {_.toLowerCase}) match {
      case ("manifest.mf" :: Nil) | ("index.list" :: Nil) | ("dependencies" :: Nil) => MergeStrategy.discard
      case _ => MergeStrategy.last
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在试图理解在上述情况下双冒号的含义。我在Quora中找到了答案,但这没有帮助。

而且,我是Scala的新手,但实际上并没有帮助。

编辑:

看到答案后,我仍然不明白为什么,因为我们正在创建列表,因此以下内容不起作用(重复的manifest.mf条目不会被丢弃):

case List("manifest.mf", "index.list", "dependencies") => MergeStrategy.discard
Run Code Online (Sandbox Code Playgroud)

以下内容也不会:(错误:)')' expected but '=>' found.

case List("manifest.mf") | List(("index.list") | List("dependencies") => MergeStrategy.discard
Run Code Online (Sandbox Code Playgroud)

编辑2:

卸下额外的支架可完成以下工作:

case List("manifest.mf") | List("index.list") | List("dependencies") …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-assembly

0
推荐指数
1
解决办法
316
查看次数

标签 统计

sbt ×1

sbt-assembly ×1

scala ×1