2016-11-25 4 views
1

私はScalaプログラミングの新機能です。Scala - 初期化時に2つのリストからマップを構築する

私は不変のマップのこの種を持っているしたいと思います:

Map[ (Int,Int), (List[BoolVar]) ] 

これら二つのリストから:

val courseName = List("Course1","Course2") 
val serieName = List("Serie1","Serie2") 

私の目標:

Map[0][0] // List[BoolVar] for "Course1""Serie1" 
Map[0][0](0) // a BoolVar from "Course1""Serie1" List 
.... 

を私はこれが、構文を試してみました虚偽です:

val test = Map[ (Int,Int), (List[BoolVar]) ](
     for (course <- List.range(0,courseName.length)) 
     for(serie <- List.range(0,serieName.length)) 
     yield (course,serie) -> 
      for (indice <- List.range(0, 48)) 
      yield BoolVar(courseName(course) + " - " + serieName(serie)) 
); 

あなたのおかげでありがとう

答えて

1

これはあなたが探しているものですか?わずかなマイナーチェンジ。 しかし、それは丸いブラケットを使用します

val courseName = List("Course1","Course2") 
val serieName = List("Serie1","Serie2") 

val m = { 
    for { 
course <- List.range(0,courseName.length) 
    serie <- List.range(0,serieName.length) 
    } yield (course, serie) -> { 
    for (indice <- List.range(0, 48)) 
      yield BoolVar(courseName(course) + " - " + serieName(serie)) 
    } 
}.toMap 

println(m) 
+0

ありがとう。私はそうだと思います。私は試してみる必要があります... – jy95

+0

あなたの時間を取る。清潔でないものがあれば質問してください。 okと答えた場合は – Pavel

+0

参照用:http://docs.scala-lang.org/tutorials/tour/sequence-comprehensions.html – Pavel

関連する問題