go语言代码解释数组和切片

语法介绍评论阅读4分47秒

本文用Go语言代码详细解释了数组和切片的概念和用法。数组是具有固定长度的数据结构,用于存储相同类型的元素,是值类型。切片则是对数组的一个灵活引用,可以动态调整大小,并且是引用类型。通过示例代码,展示了如何声明、初始化和修改数组和切片,并对比了它们在函数传递时的不同行为。切片因其灵活性和可变性,在实际应用中更为常用。

文章源自Golang编程指南-https://www.va26.com/yufa/62.html

数组文章源自Golang编程指南-https://www.va26.com/yufa/62.html

在Go语言中,数组是具有固定长度的数据结构,用于存储相同类型的元素。数组的长度是类型的一部分,因此[5]int和[10]int被视为不同的数据类型。文章源自Golang编程指南-https://www.va26.com/yufa/62.html

package main  
  
import "fmt"  
  
func main() {  
    // 声明并初始化一个长度为5的整型数组  
    var arr [5]int = [5]int{1, 2, 3, 4, 5}  
  
    // 打印数组元素  
    fmt.Println("数组元素:", arr)  
  
    // 访问数组中的特定元素  
    fmt.Println("第三个元素:", arr[2]) // 数组索引从0开始  
  
    // 尝试修改数组中的元素  
    arr[2] = 42  
    fmt.Println("修改后的第三个元素:", arr[2])  
  
    // 数组是值类型,下面的函数不会改变原数组  
    modifyArray(arr)  
    fmt.Println("原数组不受modifyArray函数影响:", arr)  
}  
  
// modifyArray 接收一个整型数组作为参数  
func modifyArray(a [5]int) {  
    a[0] = 100 // 这个修改不会影响main函数中的数组  
}

切片文章源自Golang编程指南-https://www.va26.com/yufa/62.html

切片(slice)是对数组的一个连续引用,它提供了更灵活的方式来处理数组的子序列。切片可以动态增长或缩小。文章源自Golang编程指南-https://www.va26.com/yufa/62.html

package main  
  
import "fmt"  
  
func main() {  
    // 声明并初始化一个整型切片(使用数组字面量初始化)  
    slice := []int{1, 2, 3, 4, 5}  
  
    // 打印切片元素  
    fmt.Println("切片元素:", slice)  
  
    // 访问切片中的特定元素  
    fmt.Println("第三个元素:", slice[2]) // 切片索引也是从0开始  
  
    // 修改切片中的元素  
    slice[2] = 42  
    fmt.Println("修改后的第三个元素:", slice[2])  
  
    // 切片是引用类型,下面的函数会改变原切片  
    modifySlice(slice)  
    fmt.Println("原切片受modifySlice函数影响:", slice)  
}  
  
// modifySlice 接收一个整型切片作为参数  
func modifySlice(s []int) {  
    s[0] = 100 // 这个修改会影响main函数中的切片  
}  
  
// 使用make函数创建一个切片,并指定长度和容量  
func createSliceWithMake() {  
    slice := make([]int, 5, 10) // 创建一个长度为5,容量为10的切片  
    fmt.Println("使用make创建的切片:", slice)  
}  
  
// 使用切片的切片操作来创建一个新的切片视图  
func sliceOperation() {  
    slice := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}  
    newSlice := slice[2:5] // 创建一个从索引2到4(不包括5)的新切片  
    fmt.Println("切片操作得到的新切片:", newSlice)  
}

在上面的切片示例中,你可以看到切片可以通过数组字面量初始化,也可以使用make函数来创建。切片是引用类型,因此对切片的修改会影响到其他引用相同底层数组的切片。此外,切片支持切片操作,可以轻松创建原切片的一部分作为新切片。文章源自Golang编程指南-https://www.va26.com/yufa/62.html 文章源自Golang编程指南-https://www.va26.com/yufa/62.html

 
  • 本文由golang编程指南作者原创,请勿恶意转载!
  • 转载请务必保留本文链接:https://www.va26.com/yufa/62.html
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证