一、数组概念
go语言提供了数组类型的数据结构数组是具有 [唯一类型] 的一组 [固定长度] 的数据项序列,这种类型可以是任意类型
二、数组声明
var variable_name [SIZE]variable_type如:var nums [10]int
三、初始化数组
数组在声明阶段,就已经赋予初始值了在go 语言中数组是值类型,所以声明后便自动赋予初始值.关于数组的初始值 和数组的数据类型有关如下
//因为声明的是int类型的数组,所以初始值是0var nums [5]intfmt.Println(nums)// 结果:[0 0 0 0 0]
四、数组的使用
- for-range
package mainimport "fmt"func main(){ var hosts [5]string // 数组元素的赋值 hosts = [5]string{"192.168.0.1","192.168.0.2","192.168.0.3","192.168.0.4","192.168.0.5"} fmt.Println(hosts[1]) // 取下标为1 的元素,即第2个(因为数组下标从0开始) // for-range 取的是每一个元素 for index,v := range hosts{ fmt.Printf("hosts[%d]=%s\n",index,v) }}
- 不确定元素数组
package mainimport "fmt"func main(){ var nums = [...]int{1,2,3,4,5} // 我们在不具体计算数组个数时,可以使用... 代替,届时go编辑器会计算数组个数,并声明是多少元素的数组 // var nums = [5]int{1,2,3,4,5} //与上面相同,只是数量个数由go编辑器计算了 fmt.Println(nums)}
- 数组的改与求和
package mainimport "fmt"func main(){ arrs := [5]float32{2:12.3,4:12.5} fmt.Println(arrs) arrs[0] = 28.93 arrs[1] = 9.00 fmt.Println(arrs) // 求和 var sum float32 for _,v := range arrs{ // 第一个参数是下标,不需要所以使用_,表示省略 sum += v } fmt.Println(sum)}
结果[0 0 12.3 0 12.5][28.93 9 12.3 0 12.5]62.73
- 数组在内存中的结构
因为数组是值类型,所以数组的下标对应的就是具体是数值
五、注意
在实际的开发过程中,其实很少使用数组,因为数组元素的长度被固定了,其实多数使用切片(后面会讲解)
如果喜欢看小说,请到