GO_Map_05 客官°小女子只卖身不卖艺 2024-04-08 13:12 75阅读 0赞 ## Map 声明 ## m := map[string]int{ "one": 1, "two": 2, "three": 3} m1 := map[string]int{ } m1["one"] = 1 m2 := make(map[string]int, 10 /*Initial Capacity*/) func TestInitMap(t *testing.T) { m1 := map[int]int{ 1: 1, 2: 4, 3: 9} t.Log(m1[2]) t.Logf("len m1=%d", len(m1)) m2 := map[int]int{ } m2[5] = 16 t.Logf("len m2=%d", len(m2)) m3 := make(map[int]int, 10) t.Logf("len m3=%d", len(m3)) } ## Map 元素的访问 ## **与其他主要编程语⾔言的差异** 在访问的 Key 不存在时,仍会返回零值,不能通过返回 nil 来判断元素是否存在 if v, ok := m["four"]; ok { t.Log("four", v) } else { t.Log("Not existing") } // map不存在key测试 不存在key 取值为0, 判断是否存在key ok:=m1[3] func TestAccessNotExistingKey(t *testing.T) { m1 := map[int]int{ } t.Log(m1[1]) m1[2] = 0 t.Log(m1[2]) m1[3] = 0 // v, ok:=m1[3]; v: m1[3] ok: 判断map是否存在该key 存在返回true 反之false if v, ok := m1[3]; ok { t.Logf("Key 3 value is %d", v) } else { t.Logf("Key 3 is not existing") } } ### Map 遍历 ### // map 遍历 func TestTravelMap(t *testing.T) { m1 := map[int]int{ 1: 2, 2: 4, 3: 8, 4: 16} for k, v := range m1 { t.Log(k, v) } } ### Map 与工厂模式 ### * Map 的 value 可以是一个方法 * 与 Go 的 Dock type 接口方式一起,可以方便的实现单一方法对象的工厂模式 ### 实现 Set ### Go 的内置集合中没有 Set 实现, 可以 map\[type\]bool 1. 元素的唯一性 2. 基本操作 1. 添加元素 2. 判断元素是否存在 3. 删除元素 4. 元素个数 package _map import "testing" // - Map的value可以是一个方法 func TestMapWithFunValue(t *testing.T) { m := map[int]func(op int) int{ } m[1] = func(op int) int { return op } m[2] = func(op int) int { return op * op } m[3] = func(op int) int { return op * op * op } t.Log(m[1](1), m[2](2), m[3](3)) } // set func TestMapForSet(t *testing.T) { mSet := map[int]bool{ } mSet[1] = true //n := 1 // map_ext_test.go:27: 1 is existing n := 3 // map_ext_test.go:30: 3 is not existing if mSet[n] { t.Logf("%d is existing", n) } else { t.Logf("%d is not existing", n) } mSet[3] = true t.Log(len(mSet)) // map_ext_test.go:33: 2 delete(mSet, 1) n = 1 // map_ext_test.go:39: 1 is not existing if mSet[n] { t.Logf("%d is existing", n) } else { t.Logf("%d is not existing", n) } } > PS:学习笔记,侵删!
相关 05 CAS 1. 什么是悲观锁、乐观锁? 乐观锁执行操作前认为不会导致冲突,操作数据时,不进行任何特殊处理,在进行更新后,才会去判断是否有冲突。 悲观锁操作数据时,认为操 朱雀/ 2022年11月25日 11:54/ 0 赞/ 390 阅读
相关 SpreadsheetGear Crack in 2021.05.05 SpreadsheetGear Crack in 2021.05.05 用于.NET的Spreadsheet Gear被描述为一个标准,企鹅578867473允许用户和开发 素颜马尾好姑娘i/ 2022年10月16日 02:59/ 0 赞/ 193 阅读
相关 Day-05 1.字符串截取 a\[i:j:k\] 含义:i 表示从哪个下标开始,j 表示到哪个下标结束(不包含),k 表示在 i - j 范围内每隔 k-1 个字符取出一个字符 例 太过爱你忘了你带给我的痛/ 2022年06月09日 14:54/ 0 赞/ 175 阅读
相关 day05 /\ 引用数据类型 Scanner类 nextInt()接收键盘输入,保证输入的是整数 next()接收键盘输入的字符串 String s 妖狐艹你老母/ 2022年04月24日 02:08/ 0 赞/ 241 阅读
相关 05 CheckBox 一:CheckBox:复选框 说明:一次性可以选择多个内容。 定义: java.lang.Object 偏执的太偏执、/ 2022年03月19日 02:40/ 0 赞/ 198 阅读
相关 05-09 初步拟定:用java语言打开图片,用c写算法。 还没看下载的程序,还不会用java打开图片,算法和java的接口…… 转载于:https://www.cnblogs.com 红太狼/ 2021年11月09日 01:56/ 0 赞/ 223 阅读
相关 day05 回顾 所有的IT知识都时候依托以OSI七层模型(TCP/IP四层); 协议:(规定) 应用层协议:http https(B/S) ssh telnet smtp pop 悠悠/ 2021年10月23日 11:52/ 0 赞/ 335 阅读
相关 day05 1. 格式化输出的三种方式 name = 'Nick' height = 180 weight = 140 "My name is 'Nick', my hei 今天药忘吃喽~/ 2021年10月19日 19:28/ 0 赞/ 310 阅读
相关 05 数组 声明一个变量就是在内存空间划出一块适合的空间 声明一个数组就是在内存中划出一串连续的空间 数组是相同类型数据的有序集合. 相同类型的若 逃离我推掉我的手/ 2021年10月19日 04:46/ 0 赞/ 280 阅读
相关 前端05(2021/05/26) 文章目录 简介 JQuery核心函数 传入参数为函数时 传入参数为html字符串时 传入参数为选择器字符串时 落日映苍穹つ/ 2021年09月25日 09:34/ 0 赞/ 265 阅读
还没有评论,来说两句吧...