Date: Thu, 28 Mar 2024 21:06:20 +0800 (CST) Message-ID: <635890250.4395.1711631180473@localhost.localdomain> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_4393_1064650206.1711631180473" ------=_Part_4393_1064650206.1711631180473 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
gmap
=E6=94=AF=E6=8C=81=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=
=E9=80=89=E9=A1=B9=E5=BC=80=E5=85=B3=EF=BC=8C=E5=9C=A8=E9=BB=98=E8=AE=A4=E6=
=83=85=E5=86=B5=E4=B8=8B=E6=98=AF=E9=9D=9E=E5=B9=B6=E5=8F=91=E5=AE=89=
=E5=85=A8
=E7=9A=84=EF=BC=8C=E5=BC=80=E5=8F=91=E8=80=85=E5=8F=AF=E4=
=BB=A5=E9=80=89=E6=8B=A9=E5=BC=80=E5=90=AFgmap
=E7=9A=84=E5=B9=
=B6=E5=8F=91=E5=AE=89=E5=85=A8=E7=89=B9=E6=80=A7(=E4=BC=A0=E9=80=92=E5=88=
=9D=E5=A7=8B=E5=8C=96=E5=BC=80=E5=85=B3=E5=8F=82=E6=95=B0safe
=
=E5=8F=82=E6=95=B0=E5=80=BC=E4=B8=BAtrue
, =E5=BF=85=E9=A1=BB=
=E5=9C=A8=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E8=AE=BE=E5=AE=9A=EF=BC=8C=E4=
=B8=8D=E8=83=BD=E8=BF=90=E8=A1=8C=E6=97=B6=E5=8A=A8=E6=80=81=E8=AE=BE=E5=AE=
=9A)=E3=80=82=E5=A6=82=EF=BC=9A
m :=3D gmap.New(true)
=E4=B8=8D=E4=BB=85=E4=BB=85=E6=98=AFgmap
=E6=A8=A1=E5=9D=97=
=EF=BC=8Cgoframe
=E6=A1=86=E6=9E=B6=E7=9A=84=E5=85=B6=E4=BB=96=
=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E4=
=B9=9F=E6=94=AF=E6=8C=81=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E7=89=B9=E6=80=
=A7=E5=BC=80=E5=85=B3=E3=80=82
package main import ( "fmt" "github.com/gogf/gf/v2/container/gmap" ) func main() { // =E5=88=9B=E5=BB=BA=E4=B8=80=E4=B8=AA=E9=BB=98=E8=AE=A4=E7=9A=84gmap= =E5=AF=B9=E8=B1=A1=EF=BC=8C // =E9=BB=98=E8=AE=A4=E6=83=85=E5=86=B5=E4=B8=8B=E8=AF=A5gmap=E5=AF=B9= =E8=B1=A1=E4=B8=8D=E6=94=AF=E6=8C=81=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=E7= =89=B9=E6=80=A7=EF=BC=8C // =E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=E5=8F=AF=E4=BB=A5=E7=BB=99=E5= =AE=9Atrue=E5=8F=82=E6=95=B0=E5=BC=80=E5=90=AF=E5=B9=B6=E5=8F=91=E5=AE=89= =E5=85=A8=E7=89=B9=E6=80=A7=E3=80=82 m :=3D gmap.New() // =E8=AE=BE=E7=BD=AE=E9=94=AE=E5=80=BC=E5=AF=B9 for i :=3D 0; i < 10; i++ { m.Set(i, i) } // =E6=9F=A5=E8=AF=A2=E5=A4=A7=E5=B0=8F fmt.Println(m.Size()) // =E6=89=B9=E9=87=8F=E8=AE=BE=E7=BD=AE=E9=94=AE=E5=80=BC=E5=AF=B9(=E4= =B8=8D=E5=90=8C=E7=9A=84=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E5=AF=B9=E8=B1= =A1=E5=8F=82=E6=95=B0=E4=B8=8D=E5=90=8C) m.Sets(map[interface{}]interface{}{ 10 : 10, 11 : 11, }) fmt.Println(m.Size()) // =E6=9F=A5=E8=AF=A2=E6=98=AF=E5=90=A6=E5=AD=98=E5=9C=A8 fmt.Println(m.Contains(1)) // =E6=9F=A5=E8=AF=A2=E9=94=AE=E5=80=BC fmt.Println(m.Get(1)) // =E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE=E9=A1=B9 m.Remove(9) fmt.Println(m.Size()) // =E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4 m.Removes([]interface{}{10, 11}) fmt.Println(m.Size()) // =E5=BD=93=E5=89=8D=E9=94=AE=E5=90=8D=E5=88=97=E8=A1=A8(=E9=9A=8F=E6= =9C=BA=E6=8E=92=E5=BA=8F) fmt.Println(m.Keys()) // =E5=BD=93=E5=89=8D=E9=94=AE=E5=80=BC=E5=88=97=E8=A1=A8(=E9=9A=8F=E6= =9C=BA=E6=8E=92=E5=BA=8F) fmt.Println(m.Values()) // =E6=9F=A5=E8=AF=A2=E9=94=AE=E5=90=8D=EF=BC=8C=E5=BD=93=E9=94=AE=E5= =80=BC=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=EF=BC=8C=E5=86=99=E5=85=A5=E7=BB= =99=E5=AE=9A=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC fmt.Println(m.GetOrSet(100, 100)) // =E5=88=A0=E9=99=A4=E9=94=AE=E5=80=BC=E5=AF=B9=EF=BC=8C=E5=B9=B6=E8= =BF=94=E5=9B=9E=E5=AF=B9=E5=BA=94=E7=9A=84=E9=94=AE=E5=80=BC fmt.Println(m.Remove(100)) // =E9=81=8D=E5=8E=86map m.Iterator(func(k interface{}, v interface{}) bool { fmt.Printf("%v:%v ", k, v) return true }) // =E8=87=AA=E5=AE=9A=E4=B9=89=E5=86=99=E9=94=81=E6=93=8D=E4=BD=9C m.LockFunc(func(m map[interface{}]interface{}) { m[99] =3D 99 }) // =E8=87=AA=E5=AE=9A=E4=B9=89=E8=AF=BB=E9=94=81=E6=93=8D=E4=BD=9C m.RLockFunc(func(m map[interface{}]interface{}) { fmt.Println(m[99]) }) // =E6=B8=85=E7=A9=BAmap m.Clear() // =E5=88=A4=E6=96=ADmap=E6=98=AF=E5=90=A6=E4=B8=BA=E7=A9=BA fmt.Println(m.IsEmpty()) }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =E4=B8=BA=EF=BC=9A
10 12 true 1 11 9 [0 1 2 4 6 7 3 5 8] [3 5 8 0 1 2 4 6 7] 100 100 3:3 5:5 8:8 7:7 0:0 1:1 2:2 4:4 6:6 99 true
=E6=88=91=E4=BB=AC=E6=9D=A5=E7=9C=8B=E4=B8=80=E4=B8=8B=E4=B8=89=E7=A7=8D=
=E4=B8=8D=E5=90=8C=E7=B1=BB=E5=9E=8Bmap
=E7=9A=84=E6=9C=89=E5=
=BA=8F=E6=80=A7=E9=81=8D=E5=8E=86=E7=A4=BA=E4=BE=8B=E3=80=82
package main import ( "fmt" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/container/gmap" "github.com/gogf/gf/v2/util/gutil" ) func main() { array :=3D g.Slice{2, 3, 1, 5, 4, 6, 8, 7, 9} hashMap :=3D gmap.New(true) listMap :=3D gmap.NewListMap(true) treeMap :=3D gmap.NewTreeMap(gutil.ComparatorInt, true) for _, v :=3D range array { hashMap.Set(v, v) } for _, v :=3D range array { listMap.Set(v, v) } for _, v :=3D range array { treeMap.Set(v, v) } fmt.Println("HashMap Keys:", hashMap.Keys()) fmt.Println("HashMap Values:", hashMap.Values()) fmt.Println("ListMap Keys:", listMap.Keys()) fmt.Println("ListMap Values:", listMap.Values()) fmt.Println("TreeMap Keys:", treeMap.Keys()) fmt.Println("TreeMap Values:", treeMap.Values()) }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =E4=B8=BA=EF=BC=9A
HashMap= Keys: [4 6 8 7 9 2 3 1 5] HashMap Values: [6 8 4 3 1 5 7 9 2] ListMap Keys: [2 3 1 5 4 6 8 7 9] ListMap Values: [2 3 1 5 4 6 8 7 9] TreeMap Keys: [1 2 3 4 5 6 7 8 9] TreeMap Values: [1 2 3 4 5 6 7 8 9]
package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" =09"github.com/gogf/gf/v2/frame/g" ) func main() { =09m1 :=3D gmap.NewFrom(g.MapAnyAny{ =09=09"k1": "", =09=09"k2": nil, =09=09"k3": 0, =09=09"k4": 1, =09}) =09m2 :=3D gmap.NewFrom(g.MapAnyAny{ =09=09"k1": "", =09=09"k2": nil, =09=09"k3": 0, =09=09"k4": 1, =09}) =09m1.FilterEmpty() =09m2.FilterNil() =09fmt.Println(m1.Map()) =09fmt.Println(m2.Map()) =09// Output: =09// map[k4:1] =09// map[k1: k3:0 k4:1] }
Flip<=
/code>=E9=94=AE=E5=80=BC=E5=AF=B9=E5=8F=8D=E8=BD=AC
package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" =09"github.com/gogf/gf/v2/frame/g" ) func main() { =09var m gmap.Map =09m.Sets(g.MapAnyAny{ =09=09"k1": "v1", =09=09"k2": "v2", =09}) =09m.Flip() =09fmt.Println(m.Map()) =09// May Output: =09// map[v1:k1 v2:k2] }
Keys/Values
=E9=94=AE=E5=90=8D/=E6=95=B0=E5=80=BC=E5=88=
=97=E8=A1=A8package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" =09"github.com/gogf/gf/v2/frame/g" ) func main() { =09var m gmap.Map =09m.Sets(g.MapAnyAny{ =09=09"k1": "v1", =09=09"k2": "v2", =09=09"k3": "v3", =09=09"k4": "v4", =09}) =09fmt.Println(m.Keys()) =09fmt.Println(m.Values()) =09// May Output: =09// [k1 k2 k3 k4] =09// [v2 v3 v4 v1] }
Pop/Pops=
code>=E9=9A=8F=E6=9C=BA=E5=87=BA=E6=A0=88
package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" =09"github.com/gogf/gf/v2/frame/g" ) func main() { =09var m gmap.Map =09m.Sets(g.MapAnyAny{ =09=09"k1": "v1", =09=09"k2": "v2", =09=09"k3": "v3", =09=09"k4": "v4", =09}) =09fmt.Println(m.Pop()) =09fmt.Println(m.Pops(2)) =09fmt.Println(m.Size()) =09// May Output: =09// k1 v1 =09// map[k2:v2 k4:v4] =09// 1 }
=E5=88=A4=E6=96=AD=E6=80=A7=E5=86=99=E5=85=A5=E6=98=AF=E6=8C=87=E5=BD=93=
=E6=8C=87=E5=AE=9A=E7=9A=84=E9=94=AE=E5=90=8D=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=
=97=B6=E5=88=99=E5=86=99=E5=85=A5=E5=B9=B6=E4=B8=94=E6=96=B9=E6=B3=95=E8=BF=
=94=E5=9B=9Etrue
=EF=BC=8C=E5=90=A6=E5=88=99=E5=BF=BD=E7=95=A5=
=E5=86=99=E5=85=A5=E5=B9=B6=E4=B8=94=E6=96=B9=E6=B3=95=E8=BF=94=E5=9B=9E
SetIfNotExist
SetIfNotExistFunc
SetIfNotExistFuncLock
=E6=96=B9=E6=B3=95=E5=85=B7=E4=BD=93=E6=8F=8F=E8=BF=B0=E8=AF=B7=E6=9F=A5= =E7=9C=8B=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E6=88=96=E6=BA=90=E7=A0=81=E6= =B3=A8=E9=87=8A=E3=80=82
package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" ) func main() { =09var m gmap.Map =09fmt.Println(m.SetIfNotExist("k1", "v1")) =09fmt.Println(m.SetIfNotExist("k1", "v1")) =09fmt.Println(m.Map()) =09// Output: =09// true =09// false =09// map[k1:v1] }
Merg=
e
=E5=AD=97=E5=85=B8=E8=A1=A8=E5=90=88=E5=B9=B6package main import ( =09"fmt" =09"github.com/gogf/gf/v2/container/gmap" ) func main() { =09var m1, m2 gmap.Map =09m1.Set("key1", "val1") =09m2.Set("key2", "val2") =09m1.Merge(&m2) =09fmt.Println(m1.Map()) =09// May Output: =09// map[key1:val1 key2:val2] }
gmap
=E6=A8=A1=E5=9D=97=E4=B8=8B=E7=9A=84=E6=89=80=E6=9C=89=
=E5=AE=B9=E5=99=A8=E7=B1=BB=E5=9E=8B=E5=9D=87=E5=AE=9E=E7=8E=B0=E4=BA=86=E6=
=A0=87=E5=87=86=E5=BA=93json
=E6=95=B0=E6=8D=AE=E6=A0=BC=E5=BC=
=8F=E7=9A=84=E5=BA=8F=E5=88=97=E5=8C=96/=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=
=96=E6=8E=A5=E5=8F=A3=E3=80=82
1. Marshal
package main import ( "encoding/json" "fmt" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/container/gmap" ) func main() { m :=3D gmap.New() m.Sets(g.MapAnyAny{ "name": "john", "score": 100, }) b, _ :=3D json.Marshal(m) fmt.Println(string(b)) }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =EF=BC=9A
{"name":"= john","score":100}
2.Unmarshal
package main import ( "encoding/json" "fmt" "github.com/gogf/gf/v2/container/gmap" ) func main() { m :=3D gmap.Map{} s :=3D []byte(`{"name":"john","score":100}`) json.Unmarshal(s, &m) fmt.Println(m.Map()) }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =EF=BC=9A
map[name= :john score:100]