1
Scala Code:-
import scala.io.Source
object Stocks1 {
val filename = "stocks.csv"
def main(args: Array[String]): Unit = {
readStocks(filename)
}
def readStocks(fn: String): Map[String, Float] = {
//def readStocks(fn: String): Unit = {
def percentChange(observed: Float, expected: Float): Float = {
if (observed == 0 && expected == 0)
0.0f
else
((observed - expected) * 100)/expected
}
for (line <- Source.fromFile(fn).getLines()) {
val list1 = line.split(",").map(_.trim).toList
//Assigning Map to a val so in order to return Map(String,Float)
val stock_map=Map(list1(2)->percentChange(list1(5).toFloat,list1(6).toFloat))
stock_map
}
}
我必须返回Map[String, Float]
,但我不知道该怎么做。我对scala很新。我试着将它分配到stock_map到 Map(list1(2)->percentChange(list1(5).toFloat,list1(6).toFloat))
,但我得到的错误为Type MIsmatch. Expected "Map[String, Float]" found "Unit"
。斯卡拉 - 返回地图功能在斯卡拉
非常感谢!你的解决方案工作!是的,这是我的第一个scala程序没有透彻理解for循环的理解。 – Issaq
另外一件事,我试图将值追加到列表中,因为它是不可变的,我不能那样做。而且我根本不能使用“var”。所以我用“val”引用的ListBuffer,但我仍然有问题。任何帮助将不胜感激 ?? – Issaq