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]
を返す必要がありますが、それを行う方法はわかりません。私はスカラーにとってかなり新しいです。 stockxmapに Map(list1(2)->percentChange(list1(5).toFloat,list1(6).toFloat))
に割り当てようとしましたが、Type MIsmatch. Expected "Map[String, Float]" found "Unit"
というエラーが表示されています。スカラ - スカラの関数からの戻りマップ
ありがとうございます!あなたのソリューションはうまくいった!はい、私の最初のスカラプログラムはforループの理解を完全に理解していませんでした。 – Issaq
私はリストに値を追加しようとしているもう1つのことは、変更できないので、それを行うことはできません。そして私は "var"を全く使うことはできません。だから私は "val"参照でListBufferを使用しているが、私はまだ問題がある。どんな援助も感謝されますか? – Issaq