从输入看Scala理解
我是Scala新手,从输入构建映射时遇到困难 我的问题是: 我正在获取电梯信息的输入。它由n条线组成,每条线都有升降器地板编号和地板上的升降器位置 例如:从输入看Scala理解,scala,Scala,我是Scala新手,从输入构建映射时遇到困难 我的问题是: 我正在获取电梯信息的输入。它由n条线组成,每条线都有升降器地板编号和地板上的升降器位置 例如: 0 5 1 3 4 5 这里我有三部电梯,第一部在0楼5号位置,第二部在1楼3号位置,等等 在Scala中有没有一种方法可以不使用var而将其放入映射中 到目前为止,我得到的是所有电梯信息的向量: val elevators = { for{i <- 0 until n j <- readLine spl
0 5
1 3
4 5
这里我有三部电梯,第一部在0楼5号位置,第二部在1楼3号位置,等等
在Scala中有没有一种方法可以不使用var而将其放入映射中
到目前为止,我得到的是所有电梯信息的向量:
val elevators = {
for{i <- 0 until n
j <- readLine split " "
} yield j.toInt
}
我想澄清一下,我知道我可以编写Javaish代码,初始化一个映射,然后向它添加值,但我正试图尽可能接近函数编程
感谢您的帮助或意见您可以:
val res: Map[Int, Int] =
Source.fromFile("myfile.txt")
.getLines
.map { line =>
Array(floor, position) = line.split(' ')
(floor.toInt -> position.toInt)
}.toMap
你可以做:
val res: Map[Int, Int] =
Source.fromFile("myfile.txt")
.getLines
.map { line =>
Array(floor, position) = line.split(' ')
(floor.toInt -> position.toInt)
}.toMap
如果文件以流的形式传递(在竞争编码中会发生):myscala.scala
Source.stdin.getLines
如果文件作为流传递(在竞争编码中会发生这种情况):myscala.scalaSource.stdin.getLines