【GO】复合类型:切片的动态扩容

简介: 【GO】复合类型:切片的动态扩容

代码

https://github.com/fangkang7/goLearn



案例

在这个案例中我们第一次定义的切片长度为2 那么他的容器就是2

但是在扩容了一个4后 容器就不够了就会翻倍为4

再一次扩容5和6时容量就又不够了,就会翻倍为8

image.png

package main
import "fmt"
/**
cap(slice)获取切片的容器
切片创建初期,容器等于长度
动态扩张时,一旦容量无法满足,就会以翻倍的策略进行扩张
*/
func main() {
  var slice = []int{1, 2}
  fmt.Printf("slice的长度是%d,容量是%d\n", len(slice), cap(slice))
  slice = append(slice, 4)
  fmt.Printf("slice的长度是%d,容量是%d\n", len(slice), cap(slice))
  slice = append(slice, 5, 6)
  fmt.Printf("slice的长度是%d,容量是%d\n", len(slice), cap(slice))
}
相关文章
|
21天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
34 7
|
1月前
|
Go 索引
Go语言中,遍历数组或切片
在Go语言中,遍历数组或切片
43 6
|
23天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
93 62
|
27天前
|
Go 索引
go语言遍历数组和切片
go语言遍历数组和切片
20 2
|
1月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
45 4
|
1月前
|
Go
go语言常量的类型
【10月更文挑战第20天】
26 2
|
1月前
|
Go
Golang类型转换
类型转换 1、int转string strconv.Itoa(i) 2、string转int i, err = strconv.Atoi(s) 或者 i, err = ParseInt(s, 10, 0) 3、string转float f, err = P...
875 0
|
21天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。