美文网首页
Go 数组与 切片的区别

Go 数组与 切片的区别

作者: 可望不可j | 来源:发表于2021-12-28 13:50 被阅读0次

1.使用方式

数组和slice长的很像,操作方式也都差不多,并且slice包含了数组的基本的操作方式,如下标、range循环,还有一些如len()则是多种类型共用,所以根据操作根本搞不清数组和切片的区别,能够看出区别的地方主要看如何声明的。

数组的声明方式很单一,通常就是下面这样:

array1 := [5]int{1, 2, 3, 4, 5}

array2 := [5]int{}

slice的声明方式就非常多样了,如前面介绍的几种:

var slice1 = []int{1, 2, 3, 4, 5}

var slice2 = make([]int, 0, 5)

var slice3 = make([]int, 5, 5)

var slice4 = make([]int, 5)

加上对数组的切片和append操作都会产生数组切片(slice)

2.值传递or引用传递

func arrayModify(array [5]int) {

    newArray := array

    newArray[0] = 88

}

func sliceModify(slice []int) {

    newSlice := slice

    newSlice[0] = 88

}

func main() {

    array := [5]int{1, 2, 3, 4, 5}

    slice := []int{1, 2, 3, 4, 5}

    arrayModify(array)

    sliceModify(slice)

    fmt.Println(array)

    fmt.Println(slice)

}

输出

[1 2 3 4 5]

[88 2 3 4 5]

相关文章

  • Go 数组与 切片的区别

    1.使用方式 数组和slice长的很像,操作方式也都差不多,并且slice包含了数组的基本的操作方式,如下标、ra...

  • golang入门到放弃:3.数组、切片、map

    数组 切片 数组和切片的区别 数组必须要指定长度,如果定义时不指定长度,go语言也会根据元素中的个数自动设置值数组...

  • Go语言切片

    // //Go语言切片 // /* // go语言切片是对数组的抽象 // Go 数组的长度不可改变,在特定场景中...

  • <>

    数组和切片 切片和数组的区别 数组是属于值类型。结构体,基础类型数据也属于值类型。 注意GO语言对于“传值和传引用...

  • Go基础面试题

    4.说说Go语言中,数组和切片的区别?切片的底层 数组 数组的长度是类型的一部分,不同的长度的数组,类型不是一致...

  • Go数组和切片区别

    数组是值传递,切片是引用传递 切片可扩容 切片多一个cap属性 切片底层用数组实现

  • 第03天(复合类型)_03

    13_数组做函数参数.go 14_数组指针做函数参数.go 15_切片的长度和容量.go 16_切片的创建.go ...

  • 七、Go切片

    七、Go语言切片(Slice) Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就...

  • Go 数组和切片的区别

    内部实现 数组数组是一个长度固定的数据类型,用于存储一段具有相同类型的元素的连续块。数组存储的类型可以是内置类型,...

  • go数组与切片

    数组 数组是具有相同唯一类型的一组长度固定的数据项序列,这种类型可以是任意的原始类型,例如整形,字符型或者自定义类...

网友评论

      本文标题:Go 数组与 切片的区别

      本文链接:https://www.haomeiwen.com/subject/mwspqrtx.html