铜仁做网站,在家建设一个网站需要什么材料,网站如何自己做优化,saas系统架构maps 包提供了几个非常有用的用于操作 map 类型#xff08;任何类型的 map#xff09;的函数#xff0c;本文接下来详细介绍下这几个函数。
maps.Clone
定义如下#xff1a;
func Clone[M ~map[K]V, K comparable, V any](m M) M
返回 m 的一个副本#xff0c;因为新的…maps 包提供了几个非常有用的用于操作 map 类型任何类型的 map的函数本文接下来详细介绍下这几个函数。
maps.Clone
定义如下
func Clone[M ~map[K]V, K comparable, V any](m M) M
返回 m 的一个副本因为新的键和值是使用赋值方式复制的所以这是一个浅克隆。简单示例如下
package mainimport (fmtmaps
)func main() {m : map[string]string{foo: bar}m1 : maps.Clone(m)fmt.Println(m1) // map[foo:bar]
}
maps.Copy
定义如下
func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2)
复制 src 中的所有键值对并添加到 dst 中。当 src 中的键已经在 dst 中存在时dst 中的值将被 src 中被该键对应的值覆盖。简单示例如下
package mainimport (fmtmaps
)func main() {m : map[string]string{foo: bar, foo2: bar2}m1 : map[string]string{foo: bar2, foo3: bar3}maps.Copy(m1, m)fmt.Println(m1) // map[foo:bar foo2:bar2 foo3:bar3]
}
maps.DeleteFunc
定义如下
func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool)
从 m 中删除经 del 函数计算后返回 true 的所有键值对。简单示例如下
package mainimport (fmtmaps
)func main() {m : map[string]int{one: 1,two: 2,three: 3,four: 4,}maps.DeleteFunc(m, func(k string, v int) bool {return v%2 ! 0 })fmt.Println(m)
}
删除所有值为奇数类型的键值对。
maps.Equal
定义如下
func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool
判断两个 map 是否包含相同的键值对。简单示例如下
package mainimport (fmtmaps
)func main() {m : map[string]string{foo: bar, foo2: bar2}m1 : map[string]string{foo: bar2, foo3: bar3}m2 : map[string]string{foo: bar, foo2: bar2}b : maps.Equal(m, m1)fmt.Println(b) // falseb maps.Equal(m, m2)fmt.Println(b) // true
}
maps.EqualFunc
定义如下
func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool
类似于Equal函数但使用自定义的 eq 函数进行比较。
package mainimport (fmtmapsstrings
)func main() {m1 : map[int]string{1: one,10: Ten,1000: THOUSAND,}m2 : map[int][]byte{1: []byte(One),10: []byte(Ten),1000: []byte(Thousand),}eq : maps.EqualFunc(m1, m2, func(v1 string, v2 []byte) bool {return strings.ToLower(v1) strings.ToLower(string(v2))})fmt.Println(eq) // true
}
将值转换为小写的字符串后进行比较。