我想使用MutableMap
默认值:
val myMap = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() }
但我不能使用getOrImplicitDefault
方法,因为withDefault
返回MutableMap<String, Set<String>>
类型。而且,我不能转换为MutableMapWithDefault
接口,因为这是一个私有接口。
我也不能使用get
方法,因为它返回可为空的类型。可以,因为这是MutableMap
接口上的方法(此外,它不会调用defaultValue
回调以获取默认值)。
似乎此功能未在Kotlin中正确实现,或者我使用的是错误的。那么,如何withDefault
正确使用包装器?
从Kotlin 1.0开始,返回的包装器withDefault
仅在属性委派用例中可用。
val map = mutableMapOf<String, Set<String>>().withDefault { mutableSetOf() }
var property: Set<String> by map // returns empty set by default
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句