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