gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:16:21 25 4
gpt4 key购买 nike

在我的主程序中,我收到如下输入 -键1=值1 键2=值2

现在我想要的是用它创建一个 map 。我知道这样做的必要方式,我会得到 Array[String],它可以是 foreach,然后用“=”分割,然后键和值可以用来形成一个 Map。

有没有一个好的功能和可读性的方法来实现这个?如果我能避免可变 Map 并且我想避免初始 Dummy 值初始化,那也会很棒。

  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)
}

最佳答案

你可以只使用toMap() .

然而,从数组到元组的转换并不简单: How to convert an Array to a Tuple?

scala> val ar = Array("key1=value1","key2=value2")
ar: Array[String] = Array(key1=value1, key2=value2)

scala> ar.collect(_.split("=") match { case Array(x,y) => (x,y)}).toMap
res10: scala.collection.immutable.Map[String,String] = Map(key1 -> value1, key2 -> value2)

也许你必须为 intellij 调用 Function.unlift

val r = ar.collect(Function.unlift(_.split("=") match { case Array(x, y) => Some(x, y)})).toMap

关于scala - 将命令行参数 key=value 对转换为 scala 中的 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40169850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com