Samples of Map functions "contains" and "isNotEmpty"
Co-authored-by: Ilya Gorbunov <ilya.gorbunov@jetbrains.com>
This commit is contained in:
committed by
Ilya Gorbunov
parent
606b4db48a
commit
61ad32f012
@@ -169,6 +169,36 @@ class Maps {
|
||||
|
||||
// map.containsValue("string") // cannot call extension when the argument type and the map value type are unrelated at all
|
||||
}
|
||||
|
||||
@Sample
|
||||
fun containsKey() {
|
||||
val map: Map<String, Int> = mapOf("x" to 1)
|
||||
|
||||
assertTrue(map.contains("x"))
|
||||
assertTrue("x" in map)
|
||||
|
||||
assertFalse(map.contains("y"))
|
||||
assertFalse("y" in map)
|
||||
}
|
||||
|
||||
@Sample
|
||||
fun mapIsNotEmpty() {
|
||||
fun totalValue(statisticsMap: Map<String, Int>): String =
|
||||
when {
|
||||
statisticsMap.isNotEmpty() -> {
|
||||
val total = statisticsMap.values.sum()
|
||||
"Total: [$total]"
|
||||
}
|
||||
else -> "<No values>"
|
||||
}
|
||||
|
||||
val emptyStats: Map<String, Int> = mapOf()
|
||||
assertPrints(totalValue(emptyStats), "<No values>")
|
||||
|
||||
val stats: Map<String, Int> = mapOf("Store #1" to 1247, "Store #2" to 540)
|
||||
assertPrints(totalValue(stats), "Total: [1787]")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Filtering {
|
||||
|
||||
@@ -180,7 +180,10 @@ internal expect fun mapCapacity(expectedSize: Int): Int
|
||||
@PublishedApi
|
||||
internal expect fun checkBuilderCapacity(capacity: Int)
|
||||
|
||||
/** Returns `true` if this map is not empty. */
|
||||
/**
|
||||
* Returns `true` if this map is not empty.
|
||||
* @sample samples.collections.Maps.Usage.mapIsNotEmpty
|
||||
*/
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline fun <K, V> Map<out K, V>.isNotEmpty(): Boolean = !isEmpty()
|
||||
|
||||
@@ -221,6 +224,8 @@ public inline fun <M, R> M.ifEmpty(defaultValue: () -> R): R where M : Map<*, *>
|
||||
* Checks if the map contains the given key.
|
||||
*
|
||||
* This method allows to use the `x in map` syntax for checking whether an object is contained in the map.
|
||||
*
|
||||
* @sample samples.collections.Maps.Usage.containsKey
|
||||
*/
|
||||
@kotlin.internal.InlineOnly
|
||||
public inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map<out K, V>.contains(key: K): Boolean = containsKey(key)
|
||||
|
||||
Reference in New Issue
Block a user