6_Map
发表于|更新于|Golang
|浏览量:
Map
概念
map 是引用类型,声明的方式一般如下:
1 | var map1 map[string]int |
k-v 操作
- 判断键值对是否存在
1 | // 因为 Go 中的 key 不存在的情况下返回的 value 会是零值 |
- 删除一个键值对
1 |
|
相对于 Python 中的字典,Go 中对 Map 数据类型的操作显得更为友好。
遍历 Map
1 | for idx, val := range map1 { |
文章作者: xhj
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!
相关推荐
2024-11-11
8_接口和反射
接口和反射接口的定义方式1234type Namer interface { Method1(param_list) return_type Method2(param_list) return_type } 接口相对于其他面向对象的语言,是 Go 中的多态的表现。具体代码展示如下: 1234567891011121314151617181920212223242526272829303132333435363738package mainimport "fmt"type Shaper interface { Area() float32}type Square struct { side float32}func (sq *Square) Area() float32 { return sq.side * sq.side}type Rectangle struct { length, width float32}fun...
2024-11-01
10_错误处理及测试
错误处理及测试
2024-11-06
3_控制结构
控制结构switch 结构Go 中的 switch-case 结构和 C++ 中的选择结构并不相同。 12345678i := 1switch i { case 0: func1() case 1: func2() // ... default: funcd()} 而 C++ 代码停止 switch 操作需要手动 break。 1234567i = 1switch(i) { case 1: func1(); break; case 2: func2(); break; //... default:funcd();} Go 中将这种特性去除,如果确实需要在执行完 case 的情况下还要继续执行,可以在后面添加关键字 fallthrough。如 Go代码: 1234567891011121314151617181920k := 6switch k {case 4: fmt.Println("was <= 4") fallthroughcase 5...
2024-11-05
2_基本结构和基本数据类型
基本结构和基本数据类型文件名 文件名 正误 app.go 正确 start-app.go 错误 start_app.go 错误 标识符Go 的标识符与 C 的要求类似,比如不能数字开头、不能使用关键字等。但 Go 可以使用任何 utf-8 字符来命名标识符,因此甚至可以使用中文。 关键字 基本结构 变量与常量 var const 包管理 package import 基本组件 函数 func return 自定义类型 interface struct type 引用类型 map range 流程控制 并发 go chan select 单任务流程控制 单分支控制 if else 多分支流程 switch case default fallthough 循环流程 for break continue goto 延时型流程控制 defer 函数main() 函数是每个可执行程序的入口,一般来说是第一个执行的入口函数(如果有 init() 函数会考虑先执行)。 函数的简单格式 123func funct...
2024-11-08
5_数组与切片
数组与切片新建一个数组的方法1234aList [5]intbList = []int{1, 2}cList = []int{1: 1, 4: 2}dList = new([]int) 新建一个切片的方法12345slice := make([]int, 10)var slice []int = make([]int, 10)// 以下两种方式的效果是一样的slice := new([100]int)[0:50]slice := make([]int, 50, 100) make 函数的定义如下: 12func make([]type, len, cap)// len 为初始化时占用长度, cap 为可选参数容量 new 函数和 make 函数的区别: 主要功能都是在堆上面分配内存给需要的结构体。 new 函数为每个新的类型 T 分配一片内存,初始化为 0 并且返回 *T 的内存地址,这种申请方式会返回一个 T 类型初始值为 0 的指针。 make 函数返回一个类型为 T 的初始值,它只适用于创建 slice, map 和 chan...
2024-11-10
7_结构和方法
结构和方法结构体工厂Go 中不支持向面向对象语言的方法那样构造类的子方法,但是可以根据构造子工厂的方法来实现子方法。一般来说,工厂的名字用 New 开头。 1234567891011type File struct { fd int name string}func NewFile(fd int, name string) *File { if fd < 0 { return nil } return &File{fd, name}} 如果结构体的命名开头是小写的话,可以强制要求使用结构体工厂。 匿名字段和内嵌结构体结构体可以包含一个或多个 匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型就是字段的名字。匿名字段本身可以是一个结构体类型,即 结构体可以包含内嵌结构体。 可以粗略地将这个和面向对象语言中的 继承 概念相比较,随后将会看到它被用来模拟类似继承的行为。Go 语言中的继承是通过内嵌或组...