【问题标题】:How to save multiple arguments to a Map?如何将多个参数保存到地图?
【发布时间】:2013-01-06 07:26:51
【问题描述】:

我正在使用数组形式的命令行参数,我想将其转换为地图。

例如,当我使用scala abc.scala A 10 B 20 C 30 运行我的代码时,我想要一个Map(A->10, B->20, C->30)。我也只能使用 val 所以我不能重新分配它,因为它是不可变的。我没有成功使用以下代码:

val names = args.filter(x => for(i <- 0 to args.length-1) i%2==0)
val numbers = args.partition(args(i) => i%2==1)
names.zip(numbers).toMap

【问题讨论】:

    标签: list scala map immutability


    【解决方案1】:

    你想要grouped:

    args.grouped(2).map { case Array(n,v) => (n,v) }.toMap
    

    【讨论】:

      【解决方案2】:

      您以完全错误的方式使用for。这会运行 args 的每个元素的新迭代。如果您想要一个可以使用的索引,请尝试args.zipWithIndex(它将索引与每个元素配对)。或者,查看args.grouped(2)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-23
        • 1970-01-01
        • 2016-04-22
        • 1970-01-01
        • 1970-01-01
        • 2019-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多