golang 数组和切片区别

本文通过示例对比了Go语言中数组和切片的特性,指出数组长度固定且不可变,而切片是动态可变的,可以动态增长和缩减,提供了append函数进行元素追加。
摘要由CSDN通过智能技术生成

当涉及到数组和切片时,主要的区别在于它们的长度和灵活性。以下是数组和切片使用的不同之处的示例:

数组示例:

package main

import "fmt"

func main() {
    // 声明并初始化数组
    var arr [3]int
    arr[0] = 1
    arr[1] = 2
    arr[2] = 3

    // 访问数组元素
    fmt.Println(arr[0]) // 输出 1
    fmt.Println(arr[1]) // 输出 2
    fmt.Println(arr[2]) // 输出 3

    // 数组长度固定,无法动态增长
    // arr[3] = 4 // 编译错误:index out of range
}

切片示例:

package main

import "fmt"

func main() {
    // 声明并初始化切片
    s := []int{1, 2, 3}

    // 访问切片元素
    fmt.Println(s[0]) // 输出 1
    fmt.Println(s[1]) // 输出 2
    fmt.Println(s[2]) // 输出 3

    // 切片长度和容量可以动态增长
    s = append(s, 4)
    fmt.Println(s) // 输出 [1 2 3 4]
}

在这个示例中,我们展示了数组和切片的基本用法:

  • 数组的长度是固定的,一旦声明后无法更改,因此无法动态增长数组的大小。任何尝试超出数组长度的操作都会导致编译错误。
  • 切片是对数组的一个视图,它可以动态增长和缩减,因此可以灵活地处理数据。通过使用 append 函数,可以将新元素添加到切片的末尾,并且切片的长度会自动增加。


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值