Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何将多个参数保存到映射?_List_Scala_Map_Immutability - Fatal编程技术网

List 如何将多个参数保存到映射?

List 如何将多个参数保存到映射?,list,scala,map,immutability,List,Scala,Map,Immutability,我正在使用命令行中的参数,它是数组的形式,我想把它转换成一个映射 例如,当我用scala abc.scala 10 B 20 C 30运行代码时,我想要一个映射(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)

我正在使用命令行中的参数,它是数组的形式,我想把它转换成一个映射

例如,当我用scala abc.scala 10 B 20 C 30运行代码时,我想要一个
映射(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
val name=args.filter(x=>for(i%2==1)
names.zip(数字).toMap

您想要分组

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

您需要
分组

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

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

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