沈阳做网站的科技公司,镇江市网站开发公司,网站开发试题库,什么时候网络推广编程笔记 Golang基础 022 数组 一、数组定义和初始化二、访问数组元素三、遍历数组四、数组作为参数六、特点七、注意事项 在Go语言中#xff0c;数组是一种基本的数据结构#xff0c;用于存储相同类型且长度固定的元素序列。 一、数组定义和初始化
// 声明并初始化一个整数… 编程笔记 Golang基础 022 数组 一、数组定义和初始化二、访问数组元素三、遍历数组四、数组作为参数六、特点七、注意事项 在Go语言中数组是一种基本的数据结构用于存储相同类型且长度固定的元素序列。 一、数组定义和初始化
// 声明并初始化一个整数类型的数组包含3个元素
var numbers [3]int [3]int{1, 2, 3}// 或者简写形式编译器会根据初始值数量推断数组长度
var numbers2 [3]int{4, 5, 6}// 同时声明但不初始化
var uninitialized [5]int// 在函数内部声明并初始化数组
func initArray() {var arr [4]stringarr[0] applearr[1] bananaarr[2] cherryarr[3] date // 不需要显式为arr[3]赋值因为Go会自动为剩余位置填充零值
}二、访问数组元素
package mainimport fmtfunc main() {fruits : [5]string{apple, banana, cherry, date, elderberry}// 访问数组元素fmt.Println(fruits[0]) // 输出: applefmt.Println(fruits[2]) // 输出: cherry// 修改数组元素fruits[1] mangofmt.Println(fruits)
}三、遍历数组
package mainimport fmtfunc main() {daysOfWeek : [7]string{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}// 使用for循环遍历数组for index, day : range daysOfWeek {fmt.Printf(Day %d: %s\n, index1, day)}
}四、数组作为参数
package mainimport fmt// 定义一个接受整数数组的函数
func sum(numbers [3]int) int {total : 0for _, num : range numbers {total num}return total
}func main() {nums : [3]int{10, 20, 30}result : sum(nums)fmt.Println(Sum of array:, result)
}六、特点 存储和访问效率数组的元素在内存中是连续存放的因此可以通过索引下标快速访问和修改元素对于随机访问操作具有较高的性能。 简单直观数组提供了一种直接的方式来组织和管理同类型的数据集合方便进行批量处理或迭代操作。 类型安全每个数组都有严格的类型定义只能存放指定类型的数据确保了程序的安全性和一致性。 编程教育与理解基础数据结构理解和掌握数组是学习更复杂数据结构如切片、链表等的基础有助于对底层数据管理有深入的理解。 系统资源分配清晰由于数组大小固定编译时即可知道所需内存空间这对于编写高效率且资源可控的程序十分重要。
七、注意事项 固定长度在Go语言中数组的长度是其类型的一部分并且一旦声明后不可改变这意味着你不能动态地扩展或收缩数组的容量。 值语义数组是值类型当数组作为函数参数传递时会复制整个数组内容到新的内存空间。这意味着如果数组很大可能会导致额外的性能开销。 默认零值未初始化的数组元素将被赋予该类型对应的零值例如整数为0字符串为空字符串自定义类型为零值状态。 不适合插入删除因为数组的元素存储是连续的所以在数组中间插入或删除元素会导致所有后续元素需要移动位置这在实际使用中并不高效。 实用场景有限虽然数组是基本的数据结构但在许多实际应用中开发者更多地倾向于使用切片slices它们基于数组实现但提供了动态伸缩的能力更加灵活。 语法细节数组的声明通常包含数组长度和元素类型例如 var arr [5]int 表示一个长度为5的整数数组。 索引越界检查Go语言运行时不会自动检查数组索引是否越界超出数组长度的索引会导致程序崩溃。因此在使用数组时需特别注意边界问题。