我是Scala编程的新手。
我想拥有这种不可变的地图:
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) )
);
感谢您的帮助
答案 0 :(得分: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 )