Init.
This commit is contained in:
commit
0a277876bb
6 changed files with 67 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
exe
|
3
go.mod
Normal file
3
go.mod
Normal file
|
@ -0,0 +1,3 @@
|
|||
module github.com/surdeus/godat
|
||||
|
||||
go 1.19
|
5
mkconfig
Normal file
5
mkconfig
Normal file
|
@ -0,0 +1,5 @@
|
|||
MKSHELL = sh
|
||||
<$(MKINCDIR)/config
|
||||
WATCH_FILES = src tmpl
|
||||
CC = cc
|
||||
|
5
mkfile
Normal file
5
mkfile
Normal file
|
@ -0,0 +1,5 @@
|
|||
<mkconfig
|
||||
<$MKINCDIR/gobuild
|
||||
|
||||
<$MKINCDIR/w3/run-dev
|
||||
|
24
src/cmd/test/main.go
Normal file
24
src/cmd/test/main.go
Normal file
|
@ -0,0 +1,24 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/surdeus/godat/src/mapx"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
m := map[string] string {
|
||||
"Key1" : "Value1",
|
||||
"Key2" : "Value2",
|
||||
"Key3" : "Value3",
|
||||
}
|
||||
m1 := map[int] string {
|
||||
1 : "Val1",
|
||||
2 : "Val2",
|
||||
7 : "Val7",
|
||||
}
|
||||
fmt.Println(m)
|
||||
fmt.Printf("%q\n", mapx.Keys(m))
|
||||
fmt.Printf("%q\n", mapx.Values(m))
|
||||
fmt.Printf("%q\n", mapx.Reverse(m))
|
||||
fmt.Printf("%v\n", mapx.Reverse(m1))
|
||||
}
|
29
src/mapx/main.go
Normal file
29
src/mapx/main.go
Normal file
|
@ -0,0 +1,29 @@
|
|||
package mapx
|
||||
|
||||
func Keys[K comparable, V any](m map[K] V) []K {
|
||||
r := make([]K, 0, len(m))
|
||||
for k := range m {
|
||||
r = append(r, k)
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func Values[K comparable, V any](m map[K] V) []V {
|
||||
r := make([]V, 0, len(m))
|
||||
for _, v := range m {
|
||||
r = append(r, v)
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
func Reverse[K, V comparable](m map[K] V) map[V] K {
|
||||
r := make(map[V] K)
|
||||
for k, v := range m {
|
||||
r[v] = k
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
|
Loading…
Reference in a new issue