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