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
|
// 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 {
|
class Filtering {
|
||||||
|
|||||||
@@ -180,7 +180,10 @@ internal expect fun mapCapacity(expectedSize: Int): Int
|
|||||||
@PublishedApi
|
@PublishedApi
|
||||||
internal expect fun checkBuilderCapacity(capacity: Int)
|
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
|
@kotlin.internal.InlineOnly
|
||||||
public inline fun <K, V> Map<out K, V>.isNotEmpty(): Boolean = !isEmpty()
|
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.
|
* 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.
|
* 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
|
@kotlin.internal.InlineOnly
|
||||||
public inline operator fun <@kotlin.internal.OnlyInputTypes K, V> Map<out K, V>.contains(key: K): Boolean = containsKey(key)
|
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