go 切片循环,和追加切片元素

package main

import "fmt"

func main() {
  //定义切片 :make 函数三个参数 1.切片类型 2.切片长度 3切片容量
  slice := make([]int, 4, 20)

  fmt.Println(slice)
  fmt.Println("--------------------------------------------")

  slice[0] = 5
  slice[1] = 6
  slice[2] = 5
  slice[3] = 6

  fmt.Println(slice)
  //切片定义方式2
  slice2 := []int{5, 6, 5, 6}
  fmt.Println(slice2)
  fmt.Println("--------------------------------------------")

  //切片遍历的两种方式
  for i := 0; i < len(slice); i++ {
    fmt.Println(slice[i])
  }

  for _, v := range slice {
    fmt.Println(v)
  }

  fmt.Println("--------------------------------------------")
  //给slice2 切片追加元素
  slice3 := append(slice2, 6, 6)
  //底层原理:
  //1.底层追加元素的时候对数组进行扩容,老数组扩容为新数组
  //2.创建一个新数组,将老数组中的4,7,3复制到新数组中,在新数组中追加6,6
  //3.slice3 底层数组指向的一个新数组,所以追加的元素不会影响slice2
  fmt.Println(slice2)
  fmt.Println(slice3)
  slice4 := []int{8, 8}
  slice2 = append(slice2, slice4...)
  fmt.Println(slice2)
 

  slice5 := make([]int, 10)
  copy(slice5, slice2) //将slice2 复制到clice5
  fmt.Println(slice5)
}
posted @   5656923  阅读(602)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示