golang 数组切片

golang 基础 数组+切片

package main

import (
	"fmt"
)
// 数组 切片学习
func main() {
	// 数组的初始化方式
	nums1 := [3]int{1,2,3} //指定长度,全部初始化
	fmt.Println("nums1: ",nums1) 

	nums2 := [5]int{1,2,3} //指定长度,部分初始化
	fmt.Println("nums2: ",nums2)

	nums3 := [...]int{4,5,6} //不设置长度,根据初始化长度推断
	fmt.Println("nums3: ",nums3)

	nums4 := [5]int{}; // 只设置长度,元素为默认值0
	nums4[1] = 2 
	fmt.Println("nums4: ",nums4)

	// ------------ 切片 ---------------//
	/*
	切片是灵活的,可以动态扩容
	当添加元素超过切片容量,就会重新划一个容量为原来两倍的数组,指针指向这个数组
	*/
	s1 := []int{0,1,2,3} //根据字面量创建,长度和容量相等
	fmt.Println(len(s1),cap(s1))
	fmt.Println(s1)

	s2 := make([]int,5,10) //make函数,指定长度和容量
	fmt.Println(len(s2),cap(s2))
	fmt.Println(s2)

	// 修改元素 和追加元素
	s2[2] = 3
	s2 = append(s2, 6)
	fmt.Println(s2)

	//测试 动态扩容
	s3 := make([]int,0,2)
	for i := 1 ; i< 10; i++{
		s3 = append(s3, i)
		fmt.Printf("the len is %d,the cap is %d\n",len(s3),cap(s3))
	}

}
posted @   Liang2003  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示