v1.16.13
ADDED: * mapsx: ** ListKeys() ** ListValues()
This commit is contained in:
+55
-3
@@ -26,10 +26,62 @@ func GetOk[Map ~map[K]V, K comparable, V any](m Map, k K, v V) (val V, found boo
|
||||
}
|
||||
|
||||
/*
|
||||
Must, unlike [Get] or [GetOk], requires that `k` be in map `m`.
|
||||
ListKeys returns map `m`'s keys as a slice (unlike [maps.Keys],
|
||||
which returns an iterator via [iter.Seq]).
|
||||
|
||||
A panic with error [ErrNotFound] will be raised if `k` is not present.
|
||||
Otherwise the found value will be returned.
|
||||
ListKeys will return nil if `m` is nil, and an empty slice
|
||||
if `m` is non-nil but empty.
|
||||
|
||||
The ordering of `mapKeys` is unpredictable as maps are unsorted
|
||||
and no explicit sorting is performed.
|
||||
*/
|
||||
func ListKeys[Map ~map[K]V, K comparable, V any](m Map) (mapKeys []K) {
|
||||
|
||||
var k K
|
||||
|
||||
if m == nil {
|
||||
return
|
||||
}
|
||||
mapKeys = make([]K, 0, len(m))
|
||||
|
||||
for k, _ = range m {
|
||||
mapKeys = append(mapKeys, k)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
ListValues returns map `m`'s values as a slice (unlike [maps.Values],
|
||||
which returns an iterator via [iter.Seq]).
|
||||
|
||||
ListValues will return nil if `m` is nil, and an empty slice
|
||||
if `m` is non-nil but empty.
|
||||
|
||||
The ordering of `mapVals` is unpredictable as maps are unsorted
|
||||
and no explicit sorting is performed.
|
||||
*/
|
||||
func ListValues[Map ~map[K]V, K comparable, V any](m Map) (mapVals []V) {
|
||||
|
||||
var v V
|
||||
|
||||
if m == nil {
|
||||
return
|
||||
}
|
||||
mapVals = make([]V, 0, len(m))
|
||||
|
||||
for _, v = range m {
|
||||
mapVals = append(mapVals, v)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
Must, unlike [Get] or [GetOk], requires that `k` be in map `m`.
|
||||
|
||||
A panic with error [ErrNotFound] will be raised if `k` is not present.
|
||||
Otherwise the found value will be returned.
|
||||
*/
|
||||
func Must[Map ~map[K]V, K comparable, V any](m Map, k K) (val V) {
|
||||
|
||||
|
||||
@@ -636,7 +636,7 @@ pre.rouge .gs {
|
||||
<div class="details">
|
||||
<span id="author" class="author">Brent Saner</span><br>
|
||||
<span id="email" class="email"><a href="mailto:bts@square-r00t.net">bts@square-r00t.net</a></span><br>
|
||||
<span id="revdate">Last rendered 2026-07-14 03:02:23 -0400</span>
|
||||
<span id="revdate">Last rendered 2026-07-15 19:04:01 -0400</span>
|
||||
</div>
|
||||
<div id="toc" class="toc2">
|
||||
<div id="toctitle">Table of Contents</div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<span id="author" class="author">Brent Saner</span>
|
||||
<span id="email" class="email"><bts@square-r00t.net></span>
|
||||
<span id="revdate">Last rendered 2026-07-14 03:02:27 -0400</span>
|
||||
<span id="revdate">Last rendered 2026-07-15 19:04:05 -0400</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user