Go语言复杂数据类型

数组

  概念:数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。

package main

import "fmt"

func main() {
    // 注意:数组的长度是数组类型的一部分
    // 声明数组
    var arr1 [3]int
    arr1[0] = 2
    arr1[1] = 22
    arr1[2] = 222
    // 初始化数组
    var arr2 = [3]float64{1.2, 1.3, 1.6}
    fmt.Println(arr1)
    fmt.Println(arr2)
    // 初始化数组不给定数组的大小
    var arr3 = [...]int{1, 2, 3, 4, 5}
    // 获取数组的长度
    length := len(arr3)
    fmt.Println(length)
    fmt.Println(arr3)
    // 根据索引获取数组中的值
    fmt.Println(arr3[2])
    // 根据索引初始化值
    var arr4 = [3]int{0: 1, 2: 33}
    fmt.Println(arr4)
}

数组的遍历

package main

import "fmt"

func main() {
    var names = [...]string{"jack", "tom", "jerry"}
    // 数组的遍历
    for i, v := range names {
        fmt.Println(i, v)
    }
    for i := 0; i < len(names); i++ {
        fmt.Println(names[i])
    }
    // 多维数组
    var arr = [2][3]int{
        [3]int{1, 2, 3},
        [3]int{11, 22, 33},
    }
    fmt.Println(arr)
    // 多维数组的遍历
    for _, v := range arr {
        for _, vv := range v {
            fmt.Println(vv)
        }
    }
    // 数组是值类型
    arr2 := [...]int{1,2,3}
    arr3 := arr2
    arr2[1] = 22
    fmt.Println(arr2,arr3) //[1 22 3] [1 2 3]

    // 声明一个数组 不指定数组的长度
    var arr4 []int
    fmt.Println(arr4)
}

练习

package main

import "fmt"

func main() {
    // 练习1 求数组中的所以元素的和
    arr := [...]int{1, 3, 5, 7, 8}
    sum := 0
    for _, v := range arr {
        sum += v
    }
    fmt.Println(sum) // 24
    // 练习2 找出数组中和为指定值的两个元素的下表 和为8
    for i, v := range arr {
        for j := 0; j < i; j++ {
            if arr[j]+v == 8 {
                fmt.Println(j, i)
            }
        }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容