直接通过索引可修改数组元素,如arr[1] = 99;函数中需传指针* [3]int才能修改原数组;推荐使用切片操作动态数据,因其为引用类型且更灵活。

在Golang中修改数组元素的值非常直接,只要通过索引访问对应位置并赋新值即可。数组是值类型,但在函数间传递时通常使用切片或指针以避免拷贝开销。下面介绍几种常见场景下的修改方式。
通过索引直接修改数组元素
Go中的数组有固定长度,可以通过下标(从0开始)访问和修改元素。
示例:定义一个整型数组,并修改其中某个元素:
var arr [3]int = [3]int{10, 20, 30}
arr[1] = 99 // 将第二个元素改为99
fmt.Println(arr) // 输出:[10 99 30]
只要知道元素的索引位置,就可以直接赋值修改。
在函数中修改数组需使用指针
由于Go中数组是值类型,传参时会复制整个数组。若想在函数内部修改原数组,必须传入指针。
立即学习“go语言免费学习笔记(深入)”;
示例:
func modifyArray(arr *[3]int) {
arr[0] = 100
}
var data [3]int = [3]int{1, 2, 3}
modifyArray(&data)
fmt.Println(data) // 输出:[100 2 3]
使用*[3]int接收数组指针,这样函数内对元素的修改会影响原始数组。
使用切片更灵活地操作元素
如果不需要固定长度,推荐使用切片。切片是对底层数组的引用,修改会直接影响数据。
示例:
sli := []int{5, 6, 7}
sli[2] = 42 // 修改第三个元素
fmt.Println(sli) // 输出:[5 6 42]
切片无需指定长度,支持动态扩容,日常开发中比数组更常用。
基本上就这些。直接用索引赋值就能改数组元素,注意函数传参时用指针避免副本问题。如果频繁修改或不确定长度,优先考虑切片。不复杂但容易忽略值类型的特性。










