相关疑难解决方法(0)

将Array中的值提取到元组中

有没有一种简单的方法可以将列表的值提取到Scala中的元组中?

基本上就像是

"15,8".split(",").map(_.toInt).mkTuple //(15, 8)
Run Code Online (Sandbox Code Playgroud)

或者我可以做的其他方式

val (x, y) = "15,8".split(",").map(_.toInt)
Run Code Online (Sandbox Code Playgroud)

collections scala

16
推荐指数
2
解决办法
9444
查看次数

我可以编写一个返回n元组的scala函数,其中n由参数定义吗?

我正在尝试编写一个scala函数,从tweets生成n-gram.

该函数将采用两个参数,首先是字符串列表(我们要检查的推文)和一个整数n.如果我们将n设置为2(默认值),那么函数的结果将是2元组的HashMultiset,同样如果我们将其设置为3,那么结果将是3元组的HashMultiset.

有没有办法定义这样的功能?我想明确我的输入,所以我不想只是将函数定义为返回Any的MultiSet.

这是我到目前为止的存根函数,它只适用于n == 2:

def extract_ngrams(tweets:List[String], n:Int=2):HashMultiset[(String,String)] = {
val result = HashMultiset.create[(String,String)]()
result.add(("a", "a"))
result
}
Run Code Online (Sandbox Code Playgroud)

scala

3
推荐指数
2
解决办法
555
查看次数

将命令行参数 key=value 对转换为 scala 中的 Map

在我的主程序中,我收到类似 - key1=value1 key2=value2 的输入

现在我想要的是用它创建一个地图。我知道执行此操作的命令式方法,我将获得可以 foreach 的 Array[String],然后用“=”分割,然后可以使用键和值来形成 Map。

有没有一种好的功能性和可读性的方法来实现这一点?另外,如果我可以避免可变映射并且我想避免初始虚拟值初始化,那就太好了。

  def initialize(strings: Array[String]): Unit = {
    val m = collection.mutable.Map("dummy" -> "dummyval")
    strings.foreach(
      s => {
        val keyVal:Array[String] = s.split("=")

        m += keyVal(0) -> keyVal(1)

      })
    println(m)
  }
Run Code Online (Sandbox Code Playgroud)

scala scala-collections

2
推荐指数
1
解决办法
1981
查看次数

标签 统计

scala ×3

collections ×1

scala-collections ×1