> map中的key可以为bool、数字、string、指针、channel、还可以是接口、结构体、数组,不能是slice、map、function
var 变量名 map[key类型][值类型]
map声明后没有空间,需要通过make分配空间
后进的变量先输出
```
//方式一,先声明,再make
var a map[string]string
a = make(map[string]string,10)//分配10个
a["no1"] = "PHP"
//方式二,声明直接make
var b = make(map[string]string)
//方式三,声明直接赋值
var c map[string]string = map[string]string{
"no4":"浙江",//必须加逗号
}
var c = map[string]string{
"no4": "浙江",
}
c["no5"] = "福建"
//嵌套map
map1 := make(map[string]map[string]string)
map1["a1"] = make(map[string]string,4)
map1["a1"]["a2"] = "s1"
```
*****
> map删
删除元素`delete(map,key)`
删除所有key,遍历所有的key并删除 或 make一个新的空间
> map判断是否存在
```
val, ok := map["no1"] //val 值 ok 是否存在
map["no1"] != nil //2中方法均可
```
> map遍历 for-range,类似PHP foreach
> map长度len函数
> 切片的数据类型是切片,类似php返回数据集
- 数据类型
- 数组array
- 切片slice
- 字符串string
- map
- 结构体struct
- 方法func
- 匿名结构体(继承)
- 字段别名
- 接口interface
- 常量
- 基础语法
- 循环for
- 遍历
- 函数func
- defer
- 异常处理error
- 访问范围
- 包
- 类型断言
- 文件
- 打开文件
- 读取文件
- 写文件
- 判断是否存在
- 拷贝文件
- JSON
- 序列化
- 反序列化
- 命令行
- 杂项
- Windows下配置加速
- 相关链接
- 占位符
- 随机数rand
- 单元测试
- goroutine
- 并发和并行
- 协程和主线程
- MPG模式
- 设置CPU数量
- 全局互斥锁
- 管道
- 示例1
- 示例2
- select
- 异常捕获
- 反射
- 示例
- 示例-改变值
- 网络编程
- TCP编程
- 示例一
- redis