v0.0.122
This commit is contained in:
parent
021465e524
commit
b0d3ce8c1c
@ -1,5 +1,10 @@
|
|||||||
package langext
|
package langext
|
||||||
|
|
||||||
|
type MapEntry[T comparable, V any] struct {
|
||||||
|
Key T
|
||||||
|
Value V
|
||||||
|
}
|
||||||
|
|
||||||
func MapKeyArr[T comparable, V any](v map[T]V) []T {
|
func MapKeyArr[T comparable, V any](v map[T]V) []T {
|
||||||
result := make([]T, 0, len(v))
|
result := make([]T, 0, len(v))
|
||||||
for k := range v {
|
for k := range v {
|
||||||
@ -8,6 +13,14 @@ func MapKeyArr[T comparable, V any](v map[T]V) []T {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MapValueArr[T comparable, V any](v map[T]V) []V {
|
||||||
|
result := make([]V, 0, len(v))
|
||||||
|
for _, mv := range v {
|
||||||
|
result = append(result, mv)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func ArrToMap[T comparable, V any](a []V, keyfunc func(V) T) map[T]V {
|
func ArrToMap[T comparable, V any](a []V, keyfunc func(V) T) map[T]V {
|
||||||
result := make(map[T]V, len(a))
|
result := make(map[T]V, len(a))
|
||||||
for _, v := range a {
|
for _, v := range a {
|
||||||
@ -16,6 +29,17 @@ func ArrToMap[T comparable, V any](a []V, keyfunc func(V) T) map[T]V {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MapToArr[T comparable, V any](v map[T]V) []MapEntry[T, V] {
|
||||||
|
result := make([]MapEntry[T, V], 0, len(v))
|
||||||
|
for mk, mv := range v {
|
||||||
|
result = append(result, MapEntry[T, V]{
|
||||||
|
Key: mk,
|
||||||
|
Value: mv,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
func CopyMap[K comparable, V any](a map[K]V) map[K]V {
|
func CopyMap[K comparable, V any](a map[K]V) map[K]V {
|
||||||
result := make(map[K]V, len(a))
|
result := make(map[K]V, len(a))
|
||||||
for k, v := range a {
|
for k, v := range a {
|
||||||
|
Loading…
Reference in New Issue
Block a user