0
私はラインpeopleWithThisHobby.plus(name)
でKotlin mutableList()は地図から返さ:: getOrElseは(アドオンを公開していません)
data class Person(var name: String, var hobbies: List<String>)
val people = mutableListOf(
Person("joe", asList("biking", "baking")),
Person("jane", asList("baking")),
Person("jack", asList("painting"))
)
val map = mutableMapOf<String, List<String>>()
for ((name, hobbies) in people) {
for (hobby in hobbies) {
var peopleWithThisHobby = map.getOrElse(hobby, { mutableListOf() })
peopleWithThisHobby.plus(name)
map[hobby] = peopleWithThisHobby
}
}
println(map)
を持っている、のIntelliJの自動補完は私にadd()
方法を与えるものではありません。
私の代わりに使用する必要があります:
var peopleWithThisHobby = map.getOrElse(hobby, { mutableListOf() })
peopleWithThisHobby = peopleWithThisHobby.plus(name)
map[hobby] = peopleWithThisHobby
できますか?これは設計上のものですか? getOrElse
コール内で返されているmutableList()
には何が起こっていますか?
私はKotlinのプラグインのバージョンを使用しています:1.1.3-EAP-85-IJ2017.2-1