这些短语意味着什么:
xs @ _ *
ps @ _ *
从documentation复制:
assemblyMergeStrategy in assembly := {
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.first
case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
case "application.conf" => MergeStrategy.concat
case "unwanted.txt" => MergeStrategy.discard
case x =>
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
答案 0 :(得分:3)
'@'运算符用于绑定模式匹配中的变量。
<somevar> : _*
用于将varargs解压缩为适当类型的序列。
在此示例中,ps @ _*
告诉模式匹配从PathList检索varargs作为路径序列。
答案 1 :(得分:3)
在您的示例中,_*
表示所有内容,@
表示匹配
xs @ _*
是案例模式意味着选择匹配第一个案例/javax/servlet/*
ps @ _*
表示将所有匹配的内容选为/ *和html
扩展名