5_数组与切片
数组与切片
新建一个数组的方法
1 | aList [5]int |
新建一个切片的方法
1 | slice := make([]int, 10) |
make 函数的定义如下:
1 | func make([]type, len, cap) |
new 函数和 make 函数的区别:
主要功能都是在堆上面分配内存给需要的结构体。
- new 函数为每个新的类型 T 分配一片内存,初始化为 0 并且返回 *T 的内存地址,这种申请方式会返回一个 T 类型初始值为 0 的指针。
- make 函数返回一个类型为 T 的初始值,它只适用于创建 slice, map 和 channel。
bytes 包
更省资源的字符串添加方法
1 | var buffer bytes.Buffer |
修改字符串的某个字符
Go 中的字符串是不能被改变的,如果需要修改,需要先将 string 转换成 字节数组。
1 | s := "hello" |
append 函数的常见操作
- 将切片 b 的元素追加到切片 a 之后:a = append(a, b…)
- 删除位于索引 i 的元素:a = append(a[:i], a[i+1:]…)
- 切除切片 a 中从索引 i 至 j 位置的元素:a = append(a[:i], a[j:]…)
- 为切片 a 扩展 j 个元素长度:a = append(a, make([]T, j)…)
- 在索引 i 的位置插入元素 x:a = append(a[:i], append([]T{x}, a[i:]…)…)
- 在索引 i 的位置插入长度为 j 的新切片:a = append(a[:i], append(make([]T, j), a[i:]…)…)
- 在索引 i 的位置插入切片 b 的所有元素:a = append(a[:i], append(b, a[i:]…)…)
- 取出位于切片 a 最末尾的元素 x:x, a = a[len(a)-1], a[:len(a)-1]
- 将元素 x 追加到切片 a:a = append(a, x)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!