Go语言实战 7.8分
读书笔记 第四章 数组、切片和映射
流云

数组

数组 、切片和映射

数组可以作为整体进行赋值

数组作为函数参数的时候是数组copy

数组可以用for index,value := array迭代访问

数组支持声明式make和字面式定义

切片 slice

切片类似可变数组,都可以使用数值索引访问

切片三要素:底层数组、长度、容量

切片可通过make及字面量方式声明

切片可通过append扩展当超过容量时会修改底层数组

通过一个切片生成另一个切片时,会共享底层数组,这个特性可能导致底层数组元素值的意外修改(python中这个特性是复制,而go这里是共享底层数组)

切片用于函数时是值传递,传递了切片三要素,函数内部修改后要想反馈在切片上,建议返回切片

切片也可用使用for index,value := array迭代访问

映射 map

映射可以通过map及字面量方式声明

映射可以用for key,value := array迭代访问

映射用作函数参数时是值传递(不是完整对象拷贝),具有引用语义,函数内部修改,会影响原始入参(切片却未必,因为可能因为扩容后具有了新的底层数组)

向nil映射插入数据会造成运行时错误

通过delete函数来删除特定key及其value

0
《Go语言实战》的全部笔记 5篇
豆瓣
免费下载 iOS / Android 版客户端