Golang 数组的使用

Posted 创客未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang 数组的使用相关的知识,希望对你有一定的参考价值。

★数组的定义

package main

import "fmt"

func main() {
    //1.定义一个数组
    var hens [6]float64
    //2.给数组的每个元素赋值,元素的下标是从0开始的
    hens[0] = 3.0
    hens[1] = 5.0
    hens[2] = 1.0
    hens[3] = 3.4
    hens[4] = 2.0
    hens[5] = 50.0
    //3.遍历数组求出总体重
    totalWeight2 := 0.0
    for i := 0; i < len(hens); i++ {
        totalWeight2 += hens[i]
    }
    //求出平均体重
    avgWeight2 := fmt.Sprintf("%.2f", totalWeight2/float64(len(hens)))
    fmt.Printf("totalWeigt2=%v avgWeight2=%v", totalWeight2, avgWeight2)

    var numsArray01 []int = []int {1,2,3}
    var numsArray02 = []int {1,2,3}
    var numsArray03 = [...]int {6,7,8}
    var names =[3]string{1:"tom",0:"jack",2:"marray"}

    fmt.Println(numsArray01)
    fmt.Println(numsArray02)
    fmt.Println(numsArray03)
    fmt.Println(names)

}

★四种初始化数组的方式

package main

import "fmt"

func main() {

    var numsArray01 []int = []int {1,2,3}
    var numsArray02 = []int {1,2,3}
    var numsArray03 = [...]int {6,7,8}
    var names =[3]string{1:"tom",0:"jack",2:"marray"}

    fmt.Println(numsArray01)
    fmt.Println(numsArray02)
    fmt.Println(numsArray03)
    fmt.Println(names)

}

★数组的遍历

方式一:for

package main

import "fmt"

func main() {
    //1.定义一个数组
    var hens [6]float64
    //2.给数组的每个元素赋值,元素的下标是从0开始的
    hens[0] = 3.0
    hens[1] = 5.0
    hens[2] = 1.0
    hens[3] = 3.4
    hens[4] = 2.0
    hens[5] = 50.0
    //3.遍历数组求出总体重
    totalWeight2 := 0.0
    for i := 0; i < len(hens); i++ {
        totalWeight2 += hens[i]
    }
    //求出平均体重
    avgWeight2 := fmt.Sprintf("%.2f", totalWeight2/float64(len(hens)))
    fmt.Printf("totalWeigt2=%v avgWeight2=%v", totalWeight2, avgWeight2)

}

 

方式二:for-range

基本语法

for index,value := range array01{

...

}

 说明:

1)第一个返回值index 是数组的下标

2)第二个value是在该下标位置的值

3)他们都是仅在for循环内部可见的局部变量

4)遍历数组元素的时候,如果不想使用下标,可以直接把下标index标为下划线_

5)index和value的名称不是固定的,即程序员可以自行指定,一般名命为index和value

package main

import (
    "fmt"
)

func main() {
    //演示for-range遍历数组
    heroes := [...]string{"宋江", "吴用", "卢俊义"}
    //遍历数组
    for index, value := range heroes {
        fmt.Printf("index=%v value=%v\\n", index, value)
        fmt.Printf("heroes[%d]=%v\\n", index, heroes[index])
    }
}

★数组使用注意事项和细节

1)数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化。

2)var arr[]int 这时 arr 就是一个slice切片。

3)数组中的元素可以是任何数据类型,包括值类型和引用类型,但是不能混用。

4)数组创建后,如果没有赋值,有默认值

  数值类型数组:默认值为 0

  字符串数组:默认值为 “”

  bool数组:默认值为 false

5)使用数组的步骤

  步骤1:声明数组并开辟空间

  步骤2:给数组各个元素赋值

  步骤3:使用数组

6)数组的下标是从0开始的

7)数组下标必须在指定范围内使用,否则报panic:数组越界,比如 :

  var arr [5]int 则有效下标为 0-4

8)Go的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响

9)如果想在其他函数中,去修改原来的数组,可以使用引用传递(指针方式)

10)长度是数字类型的一部分,在传递函数参数时,需要考虑数组的长度。

以上是关于Golang 数组的使用的主要内容,如果未能解决你的问题,请参考以下文章

golang代码片段(摘抄)

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

《Go题库·1》Golang里的数组和切片有了解过吗?

json [Golang] golang #golang #snippets中有用的片段

#yyds干货盘点#带大家认识Golang中的切片数据类型