golang学习之路-19切片slice的使用

package main

import "fmt"
func main() {
   var a = [3]int{1,2,3}
   //var b =  [2]int{1,2}
   //var c[3]int = [3]int{1,2,3}
   //d :=[4]int{1,2,3,4}
   //e :=[6]int{}

   fmt.Println(a,a[0:2])

   //切片从数组或者切片生成新的切片,顾头不顾尾
   //slice[start:end]
   /*
      特性:1、取出元素到数量为 结束到位置-开始到的位置
            2、取出元素不包括结束位置的索引(顾头不顾尾)
            3、取出最后一个的元素使用slice(len(slice))
            4、当缺开始当位置当时候,则表示从开头到结束位置
          5、当没结束位置当话,则表示从开始位置到末尾
          6、两者同时缺省,则与本身相等
            7、两者同为0,则等效于空切片,一般用于切片复位。
   */
   var highRiseBuilding[30]int
   for i:=0;i<30 ;i++  {
      highRiseBuilding[i] = i+1
   }
   //下标10-15
   fmt.Println(highRiseBuilding[10:15])

   //中间到末尾
   fmt.Println(highRiseBuilding[20:])
   //开始到第二个
   fmt.Println(highRiseBuilding[:2])

   g:=[]int{1,2,3}
   fmt.Println(g[:])//全部复制
   fmt.Println(g[0:0])//清空



   //直接声明新的切片
   var na []int//默认nil
   var str []string//默认nil
   //声明空切片
   var numlistEmpty = []int{}
   //输出3个切片
   fmt.Println(str,na,numlistEmpty)
   //输出3个切片大小
   fmt.Println(len(na),len(str),len(numlistEmpty))
   fmt.Println(na==nil)//true
   fmt.Println(str==nil)//true
   fmt.Println(numlistEmpty==nil)//false

   //使用make()函数构造切片(动态构造一个切片)
   //make([]type,size,cap)
   //type类型 size分配元素个数,cap预分配的元素个数

   ac :=make([]int,2)
   ab :=make([]int,2,10)
   fmt.Println(ab,ac)
   fmt.Println(len(ab),len(ac))
   //预分配10个使用2个



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学渣王菜菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值