zoukankan      html  css  js  c++  java
  • <6>Golang基础进阶——数组

    Golang开发之数组

    数组——固定大小的连续空间

    概念

    数组是一段固定长度的连续内存区域。在 Go 语言中,数组从声明时就确定,(使用时可以修改数组成员,但是数组大小不可变化)。

    1. 声明数组

    var 数组变量名 [元素数量]T
    示例:

    如果未补充的value会使用该类型默认值填充。

    func main() {
    var team [3]string

    team[0] = "hammer"
    team[1] = "sold"
    team[2] = "mum"

    fmt.Println(team) // [hammer sold mum]
    }
    声明并初始化数组:
    func main() {
    var team = [3]string{"hammer", "sold", "mum"}
    fmt.Println(team)
    }
    数组大小交给编译器定义:
    func main() {
    var team = [...]string{"hammer", "sold", "mum"}
    fmt.Println(team)
    }

    2. 遍历数组

    func main() {
    arr1 := [5]int{3: 100, 4: 300}
    for i := 0; i < len(arr1); i++ {
    fmt.Printf("a[%d]=%d ", i, arr1[i])
    }

    for i, _ := range arr1 {
    fmt.Println(i)
    }
    }

    二维数组

    func main() {
    var a [3][2]int
    a[0][0] = 10
    a[0][1] = 10
    fmt.Println(a)

    for i1, v1 := range a {
    fmt.Println(i1)
    for i2, v2 := range v1 {
    fmt.Println(i2, v2)
    }
    }
    }

    数组拷贝和传参

    func printArr(arr *[5]int) {
    arr[0] = 10
    }

    func main() {
    var arr [5]int
    printArr(&arr)
    fmt.Println(arr)

    arr2 := [...]int{1, 2, 3, 4, 5}
    printArr(&arr2)
    fmt.Println(arr2)
    }

    数组练习

    求数组所有元素之和

    func sumArr(a [10]int) int {
    var sum int = 0
    for i := 0; i < len(a); i++ {
    sum += a[i]
    }
    return sum
    }

    func main() {
    rand.Seed(time.Now().Unix())
    var b [10]int
    for i := 0; i < len(b); i++ {
    b[i] = rand.Intn(1000)
    }
    sum := sumArr(b)
    fmt.Println(sum)

    }

    找出数组中和为给定值的两个元素的下标,例如数组[1,3,5,8,7],找出两个元素之和等于8的下标分别是(04)和(12

    func myTest(a [5]int, target int) {
    for i := 0; i < len(a); i++ {
    other := target - i
    for j := i + 1; j < len(a); i++ {
    if a[j] == other {
    fmt.Printf("(%d,%d)", i, j)
    }
    }
    }
    }

    func main() {
    b := [5]int{1, 3, 5, 8, 7}
    myTest(b, 8)
    }
    加油,你们是最棒的!
  • 相关阅读:
    一文解读AI芯片之间的战争 (转)
    一文解读ARM架构 (转)
    一文解读云计算 (转)
    一文解读裸金属云 (转)
    一文解读发布策略 (转)
    C#使用OracleDataReader返回DataTable
    centos8平台上php7.4的生产环境配置
    centos8安装php7.4
    centos8安装java jdk 13
    docker的常用操作之二:docker内无法解析dns之firewalld设置等
  • 原文地址:https://www.cnblogs.com/Wshile/p/12768285.html
Copyright © 2011-2022 走看看