GO学习 --- 切片的使用

一、slice切片

1、切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。

2、切片的使用和数组类似,遍历切片、访问切片的元素和求切片长度len(slice)都一样。

3、切片的长度是可以变化的,因此切片是一个可以动态变化数组。

基本语法:

var 切片名 []类型   == var num []int

二、基本使用

package main

import (
	"fmt"
)
func main(){
  //定义一个数组
  arr := [...]int{1,2,3,4,5,6} 
  //定义一个切片
  //包含下标为一的数,不包含下标为3的数
  slice := arr[1:3]
  fmt.Println("arr=",arr)
  fmt.Println("slice的元素为:",slice)
  fmt.Println("slice的长度为:",len(slice))
  fmt.Println("slice的容量为:",cap(slice)) //这个容量是一个不确定的数
} 

 三、内存图

 四、使用切片的三种方式

第一种方式:定义一个切片,然后让切片去引用一个已经创建好的数组(参考基本使用代码

第二种方式:通过make来创建切片,第一种方式我们可以看到数组,make创建不能看到数组。

package main

import (
	"fmt"
)
func main(){
  //使用make
  var slice []float64 = make([]float64,5,10)
  slice[0] = 10
  slice[4] = 20
  fmt.Println(slice)
  fmt.Println("slice的长度为:",len(slice))
  fmt.Println("slice的容量为:",cap(slice))
} 

第三种、定义一个切片,直接就指定具体数组,使用原理类似make的方式 

package main

import (
	"fmt"
)
func main(){
  slice := []string{"tom","cat","dog"}
  fmt.Println(slice)
  fmt.Println("长度为:",len(slice))
  fmt.Println("容量为:",cap(slice))
} 

 五、遍历切片

方式一、for循环常规方式遍历

package main

import (
	"fmt"
)
func main(){
  arr := [...]int{10,20,30,4,8,5,4}
  slice := arr[1:3]
  for i := 0; i < len(slice); i++ {
    fmt.Println(i,slice[i])
  }
} 

 方式二、使用for-range

package main

import (
	"fmt"
)
func main(){
  arr := [...]int{10,20,30,4,8,5,4}
  slice := arr[1:3]
  for _,val := range slice {
    fmt.Println(val)
  }
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鸭鸭老板

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

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

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

打赏作者

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

抵扣说明:

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

余额充值