Mapの使い方と関数型プログラミングについて
Josh Skeen, David Greenhalgh著『Kotlinプログラミング』の章末問題を解いています。模範解答がないので、回答が正しいのかどうかわからないため、ご指導いただければと思います。よりKotlinらしい、より関数型プログラミングらしい答えを求めています。
問題は次のとおりです。
お題
// マップにあるキーと値を逆転させるflipValues関数をつくれ。
val gradesByStudent = mapOf("Josh" to 4.0, "Alex" to 2.0, "Jane" to 3.0)
//表示例:{Josh=4.0, Alex=2.0, Jane=3.0}
flipValuesList(gradesByStudent)
//表示例:{4.0=Josh, 2.0=Alex, 3.0=Jane}
私の回答案
fun main() {
val gradesByStudent = mapOf("Josh" to 4.0, "Alex" to 2.0, "Jane" to 3.0)
println(gradesByStudent)
println("表示例:${flipValues(gradesByStudent)}")
}
// Mapの要素を組み立てなおす方法
fun flipValues(gradesByStudent: Map<String, Double>): Map<Double, String> {
var flip: MutableMap<Double, String> = mutableMapOf()
gradesByStudent.forEach { (k, v) ->
flip.put(v, k)
}
return flip
}
0