8. 数组

Posted hatsusakana

tags:

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

【数组的声明】

package main 

import (
    "fmt"
)

func main() {
    var a[3] int
    var b[3] string

    fmt.Println(a)
    fmt.Println(b)
}

【数组的使用】

package main 

import (
    "fmt"
)

func main() {
    var a[3] int
    var b[3] string

    a[0] = 1
    a[1] = 2
    a[2] = 3

    b[0] = "aaa"
    b[1] = "bbb"
    b[2] = "ccc"

    fmt.Println(a)
    fmt.Println(b)
}

很简单的使用方法,注意这里Go语言不支持数组自动扩展,所以数组定义多大,就能使用多大,比如这里: a[3] = 4这样就是错误的,会报错:  invalid array index 3 (out of bounds for 3-element array)

【初始化值】

a := [3]int{1, 2, 3}
b := [3]string{"aaa", "bbb", "ccc"}
c := [...]int{4, 5, 6, 7, 8, 9, 10}

最后一行可以不指定数组长度初始化,具体长度由初始化的值个数决定。

【遍历数组】

遍历数组常用的就是for循环了,但是Go语言提供了range来迭代数组:

package main 

import (
    "fmt"
)

func main() {
    str := [...]string{"a", "b", "c", "d"}

    for i := 0; i < len(str); i++ {
        fmt.Printf("%d: %s
", i, str[i])
    }

    for key, value := range str {
        fmt.Printf("%d: %s
", key, value)
    }

    fmt.Println(str)
}

len 可以计算数组长度

【数组切片】

切片是数组的一些功能封装,但是切片并不产生新的数据,切片相当于对现有数据的引用。

package main 

import (
    "fmt"
)

func main() {
    
    a := [...]int{1, 2, 3, 4, 5, 6}
    b := a[1:4]

    b[0] = 999

    fmt.Println(a)
    fmt.Println(b)
}

以上面这个例子为例,结果是:

[1 999 3 4 5 6]
[999 3 4]

切片就很像是指针,他的所有操作,源数据都会被改变。

 



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

VSCode自定义代码片段10—— 数组的响应式方法

在一个无序整数数组中,找出连续增长片段最长的一段, 增长步长是1。Example: [3,2,4,5,6,1,9], 最长的是[4,5,6]

web代码片段

Xcode 8 Autocomplete Broken - 仅显示有限的用户代码片段 - 知道为啥吗?

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

javascript常用代码片段