MENU

Go 学习笔记:数组

August 21, 2021 • Golang

Golang是支持了数组这种数据结构的,具体可以参考C语言里的数组

比如我们想要申请一个新的数组

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:03:32
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    var strs [20]string // 声明一个20个长度的字符串数组
    fmt.Println(strs)
}

当然也可以这样

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:03:32
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [20]string{}
    fmt.Println(strs)
}

当你不知道这个数组需要声明多大的时候,可以这样写,Go会自动判断数组的大小

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:07:15
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [...]string{"Hello", "world", "my", "dear"}
    fmt.Println(strs, len(strs)) // [Hello world my dear] 4
}

当然,你也可以这样写

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:08:11
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [...]string{"Hello", "world", "my", 7: "dear"}
    fmt.Println(strs, len(strs)) // [Hello world my     dear] 8
}

上述的写法代表下标为7的位置是”dear“

通过下标访问数组的方式也和C语言相似

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:11:22
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [...]string{"Hello", "world", "my", "dear"}
    fmt.Println(strs[1])
}

如果说他跟C语言很相似,那我倒是觉得遍历他的时候和Python有点串味

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:13:11
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [...]string{"Hello", "world", "my", "dear"}
    for i := 0; i < len(strs); i++ {
        fmt.Println(strs[i])
    }
}

或许你也可以用range来遍历

/*
 * @Author: NorthCityChen
 * @LastEditTime: 2021-08-21 17:16:38
 * @Description:
 * @Website: https://grimoire.cn
 * Copyright (c) NorthCityChen All rights reserved.
 */
package main

import (
    "fmt"
)

func main() {
    strs := [...]string{"Hello", "world", "my", "dear"}

    for idx, item := range strs {
        fmt.Println(item, idx)
    } // 第一个是索引,第二个是内容
}
作者:NorthCity1984
出处:https://grimoire.cn/golang/go3.html
版权:本文《Go 学习笔记:数组》版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任