slice 切片

目录

什么是切片

创建切片

1. 通过底层数组 (需要指定上界下界)

2. 直接创建 (直接创建切片, 会在内存中创建一个底层数组, 切片就是对底层数组的引用, 语法糖)

3. 通过make函数创建

切片的长度和容量

 切片默认值(零值)

append 给切片追加元素

切片的扩容规则

拷贝切片

 总结


什么是切片

切片就是底层数组的一部分, 修改切片底层数组也会相应改变, 共享一个底层数据的不同切片都会更改, 而且切片的长度灵活多变, 切片是golang中复杂数据类型的一种, 具有长度和容量,分别通过len()和cap()来获取

创建切片

创建切片有三种方式, 一种通过底层数据创建, 一种直接创建切片, 一种是通过make函数

1. 通过底层数组 (需要指定上界下界)

  • 切片的上下界有默认值, 上界为0 , 下界为数组或切片的长度
package main

import (
	"fmt"
)

func main() {
	array := [5]int{1,2,3,4,5}
    slice := array[1:4]
	fmt.Printf("array值%v\n", array)
	fmt.Printf("slice值%v\n", slice)
}

2. 直接创建 (直接创建切片, 会在内存中创建一个底层数组, 切片就是对底层数组的引用, 语法糖)

package main

import (
	"fmt"
)

func main() {
	slice := []int{1,2,3}
  var slice2 []int = []int{1,2,3,4}
  var slice3 = []int{1,2,3,4,5}
	fmt.Printf("切片的值是 %v, 类型是 %T\n",slice, slice)
	fmt.Printf("切片的值是 %v, 类型是 %T\n",slice2, slice2)
	fmt.Printf("切片的值是 %v, 类型是 %T",slice3, slice3)
}

3. 通过make函数创建

用make函数创建切片, 需要三个参数, 类型, 长度, 容量, 创建出来的切片成员默认都是零值, 容量可以不传, 不传默认就是长度的值, 但是长度必传

package main

import (
	"fmt"
)

func main() {
  slice :&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值