12.1 slice0array.go

package main

import "fmt"

func main() {
   a := [6]int{1, 2, 3, 4, 5, 6}
   for i := 0; i < 6; i++ {
      fmt.Printf("a[i]的类型=%T\n", a[i]) //a[i]的类型=int
      if i == 0 {
         a[0], a[1] = 100, 200
         fmt.Print("a=", a) //a=[100 200 3 4 5 6]
      }
      a[i] = 100 + a[i] //200 200 3 ...--> 200 300 3 ...--> 200 300 103 ...  ......
   }
   fmt.Println("最后a=", a) //最后a= [200 300 103 104 105 106]

   aa := [6]int{1, 2, 3, 4, 5, 6}
   for i, v := range aa { //todo:range一次性拿到一个数组,再自己慢慢享用
      fmt.Printf("v的类型=%T\n", v) //v的类型=int
      if i == 0 {
         aa[0], aa[1] = 100, 200
         fmt.Print("aa=", aa) //aa=[100 200 3 4 5 6]
      }
      aa[i] = 100 + v //101 200 3 ...--> 101 102 3 ...--> 101 102 103 ...   ....
   }
   fmt.Println("最后aa=", aa) //最后aa= [101 102 103 104 105 106]

   b := []int{1, 2, 3, 4, 5, 6}
   for i := 0; i < 6; i++ {
      fmt.Printf("b[i]的类型=%T\n", b[i]) //b[i]的类型=int
      if i == 0 {
         b[0], b[1] = 100, 200
         fmt.Print("b=", b) //b=[100 200 3 4 5 6]
      }
      b[i] = 100 + b[i] //200 200 3 --> 200 300 3 --> 200 300 103
   }
   fmt.Println("最后b=", b) //最后b= [200 300 103 104 105 106]

   bb := []int{1, 2, 3, 4, 5, 6}
   for i, v := range bb { //todo:range一次性拿到自己享用的是一个指针和该指针指向对象的长度,因为切片bb本质是一个指向底层数组的指针,每轮循环v拿到的都是bb指针指向的数组的最新的值
      fmt.Printf("v的类型=%T\n", v) //v的类型=int
      if i == 0 {
         bb[0], bb[1] = 100, 200
         fmt.Print("bb=", bb) //bb=[100 200 3 4 5 6]
      }
      bb[i] = 100 + v //101 200 3 ...--> 101 300 3 ...--> 101 300 103 ...  ......
   }
   fmt.Println("最后bb=", bb) //最后bb= [101 300 103 104 105 106]

   //todo:发现只会重复一遍就结束了
   c := []int{11, 22, 33, 44, 55, 66, 77, 88, 99}

   for _, v := range c { //todo:range一次性拿到并慢慢享用的是一个指针和该指针指向对象的长度,因为切片c本质是一个指向底层数组的地址
      c = append(c, v)
   }
   fmt.Println("c=", c) //c= [11 22 33 44 55 66 77 88 99 11 22 33 44 55 66 77 88 99]

   for _, v := range c {
      c = append(c, v)
   }
   fmt.Println("c=", c)
   //c= [11 22 33 44 55 66 77 88 99 11 22 33 44 55 66 77 88 99 11 22 33 44 55 66 77 88 99 11 22 33 44 55 66 77 88 99]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值