ADDED:
* mapsx:
** ListKeys()
** ListValues()
This commit is contained in:
brent saner
2026-07-15 19:04:00 -04:00
parent 72af113204
commit 5108b09df5
3 changed files with 57 additions and 5 deletions
+52
View File
@@ -25,6 +25,58 @@ func GetOk[Map ~map[K]V, K comparable, V any](m Map, k K, v V) (val V, found boo
return return
} }
/*
ListKeys returns map `m`'s keys as a slice (unlike [maps.Keys],
which returns an iterator via [iter.Seq]).
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`. Must, unlike [Get] or [GetOk], requires that `k` be in map `m`.
+1 -1
View File
@@ -636,7 +636,7 @@ pre.rouge .gs {
<div class="details"> <div class="details">
<span id="author" class="author">Brent Saner</span><br> <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="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>
<div id="toc" class="toc2"> <div id="toc" class="toc2">
<div id="toctitle">Table of Contents</div> <div id="toctitle">Table of Contents</div>
+1 -1
View File
@@ -6,7 +6,7 @@
<span id="author" class="author">Brent Saner</span> <span id="author" class="author">Brent Saner</span>
<span id="email" class="email"><bts@square-r00t.net></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> </div>