用kotlin 实现MutableMap中的put的扩展方法,如果key相同则输入log,并且给出实例化代码
时间: 2024-05-03 17:20:35 浏览: 8
很高兴为您解答这个问题。以下是用 Kotlin 实现 MutableMap 中的 put 扩展方法的示例代码,如果 key 相同则打印日志并返回 false:
```
inline fun <K, V> MutableMap<K, V>.putLog(key: K, value: V, logger: Logger? = null): Boolean {
val prevValue = put(key, value)
if (prevValue != null) {
logger?.info("Key '$key' already existed with value '$prevValue', overwritten with '$value'.")
return false
}
return true
}
```
这个方法接受三个参数:要插入的 key、value,以及一个日志记录器(可选)。使用时只需要在 MutableMap 对象上调用 putLog 方法即可:
```
val map = mutableMapOf<String, Int>()
map.putLog("a", 1)
map.putLog("a", 2)
```
如果第二次插入的 key 已经存在于 map 中,则会打印一条日志,并返回 false。
关于实例化代码,您可以根据需要自行实现。例如:
```
val map = mutableMapOf<String, Int>()
map.putLog("a", 1)
map.putLog("b", 2)
```
希望这个示例能够帮助您实现自己的 putLog 方法。如果您有任何其他问题,请随时提出。