Home > Net >  Map withDefault not wokring kotlin?
Map withDefault not wokring kotlin?

Time:06-09

I have a mutable map in which I want a default value 0 for key not found

I tried the below code withDefault({somevalue})but still returns null

val attributes = mutableMapOf<String, Int>().withDefault({0})
attributes["orange"]=345
println(attributes["orange"])
println(attributes["orang"])

The result I get is 345 null instead of 345 0

What is it I am missing here?

CodePudding user response:

withDefault is to be used with getValue and not with get resp. [...]:

val attributes = mutableMapOf<String, Int>().withDefault { 0 }

val result = attributes["orang"]
println(result)   // Output: null

val result2 = attributes.getValue("orang")
println(result2)   // Output: 0

See: withDefault

This implicit default value is used when the original map doesn't contain a value for the key specified and a value is obtained with Map.getValue function [...]

  • Related