给定一个数字与多个字符相关联的地图
scala> val conversion = Map("0" -> List("A", "B"), "1" -> List("C", "D"))
conversion: scala.collection.immutable.Map[java.lang.String,List[java.lang.String]] =
Map(0 -> List(A, B), 1 -> List(C, D))
Run Code Online (Sandbox Code Playgroud)
我想基于一系列数字生成所有可能的字符序列.例子:
"00" -> List("AA", "AB", "BA", "BB")
"01" -> List("AC", "AD", "BC", "BD")
Run Code Online (Sandbox Code Playgroud)
我可以用这些来理解
scala> val number = "011"
number: java.lang.String = 011
Run Code Online (Sandbox Code Playgroud)
为每个索引创建一系列可能的字符
scala> val values = number map { case c => conversion(c.toString) }
values: scala.collection.immutable.IndexedSeq[List[java.lang.String]] =
Vector(List(A, B), List(C, D), List(C, D))
Run Code Online (Sandbox Code Playgroud)
生成所有可能的字符序列
scala> for {
| a <- values(0)
| b <- …
Run Code Online (Sandbox Code Playgroud) 与根据选项添加XML属性相关,我想根据选项在Scala中添加XML标记.
scala> def toXml(value1: String, value2: Option[String]) =
| <body>
| <tag1>{value1}</tag1>
| {value2 map (x => <tag2>{x}</tag2>) flatten}
| </body>
toXml: (value1: String,value2: Option[String])scala.xml.Elem
Run Code Online (Sandbox Code Playgroud)
如果选项存在:
scala> toXml("value1", Some("value2"))
res1: scala.xml.Elem =
<body>
<tag1>value1</tag1>
<tag2>value2</tag2>
</body>
Run Code Online (Sandbox Code Playgroud)
如果选项不存在:
scala> toXml("value1", None)
res2: scala.xml.Elem =
<body>
<tag1>value1</tag1>
</body>
Run Code Online (Sandbox Code Playgroud)
我想根据选项生成很多标签,我想知道是否可以找到更简洁的解决方案.例如,拉着Elem班的?运算符并像这样使用它(这是一个肮脏的解决方案,因为在调用?运算符之前将Option value2转换为String):
scala> def toXml2(value1: String, value2: Option[String]) =
| <body>
| <tag1>{value1}</tag1>
| {<tag2>{value2}</tag2>?}
| </body>
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
在SBT build.sbt
项目文件中,是否可以检索未捆绑为的库依赖项jar
?
就我而言,我正在尝试使用需要和库的QTSampledSP..dll
.jnilib