美文网首页
跟我一起学习GO语言004

跟我一起学习GO语言004

作者: 搬砖人1314 | 来源:发表于2019-06-22 12:02 被阅读0次

    接上一节继续学习Go语言,存储和组织数据的方式

    首先我们来学习数组,数组是一段固定长度的连续内存区域。

    数组声明:var 数组变量名[元素数量] T

    //声明一个字符串数组
        varteam [5]string
        team[0] = "Hao"
        team[1] = "do"
        team[2] = "you"
        team[3] = "do"
        team[4] = "?"

        //输出
        fmt.Println(team)

    输出:[Haodo you do ?]

    遍历数组,访问每一个数组元素,然后输出。

       //遍历数组,访问每一个数字元素

        varnum [3]int

        num[0] = 1
        num[1] = 3
        num[2] = 5

        fork, v := range num {
            fmt.Println(k, v)
        }
    输出:

    0 1 
    1 3
    2 5

    切片(slice),动态分配大小的连续空间;切片的内部结构包含地址、大小和容量。

    切片声明:var name[]T

    //声明整型切片
        varnumlist []int
        //声明字符串切片
        varstrlist []string
        //声明一个空切片
        varstrlistempty = []int{}
        //输出三个切片
        fmt.Println(numlist, strlist,strlistempty)
        //切片判定空结果
        fmt.Println(numlist == nil)
        fmt.Println(strlist == nil)
        fmt.Println(strlistempty ==nil)

    输出:
    [] [] []
    true true false

    下面我们使用make()函数构造切片,make([]T,size,cap),T:切片元素类型;size:切片分配多少个元素;cap:预分配的元素数量。

        aa := make([]int, 2)
        bb := make([]int, 2, 10)//容量不会影响当前元素个数
       fmt.Println(aa, bb)

    接下来我们看看怎么为切片添加元素,通过append函数添加元素。

    //声明一个整型切片

        varnumbers []int
        fori := 0; i < 8; i++ {
            //通过append函数添加元素
            numbers = append(numbers, i)
        }
        //输出切片元素
        fmt.Print(numbers)

    输出:[01 2 3 4 5 6 7]

    如果我们要复制一个切片元素到另一个切片怎么操作呢?

        //设置元素数量为888
        constelementcount = 888
        //预分配足够多的元素切片
        stcData := make([]int, elementcount)
        //复制给切片
        fori := 0; i <elementcount; i++ {
            stcData[i]= i
        }
        //预分配足够多的元素切片
        copyData := make([]int, elementcount)
        copy(copyData,stcData)
        //输出两个切片的第8个元素
        fmt.Println(stcData[7], copyData[7])

    输出:77

    接下来我们怎么删除切片中的元素

    //声明一个字符串切片
        sep := []string{"a", "b", "c", "4", "d", "e"}
        //指定删除位置
        index := 3
        //查看删除位置之前和之后的元素
        fmt.Println(sep[:index],sep[index+1:])
        //将删除点前后的元素连接起来
        sep = append(sep[:index],sep[index+1:]...)
        //输出新的切片
        fmt.Println(sep)

    输出:
    [a b c] [d e]
    [a b c d e]

    GO语言中切片删除元素的本质是以删除元素为分界点,将前后两个部分的元素连接起来。

    接下来我们映射(map),建立事物关联的容器,定义:map[KeyType] ValueType ; KeyType为键类型,ValueType为键对应的值类型。

    scene := make(map[string]int)
        //给对应键赋值
        scene["route"] = 66
        //输出键的值
        fmt.Println(scene["route"])
        mm := map[string]int{

            "a": 1,
            "b": 3,
            "c": 5,
            "d": 7,
        }

        //输出map
        fmt.Println(mm)

    输出:66

    map[a:1 b:3 c:5 d:7]
    遍历map的键值对,访问每一个map中的关联关系

    //循环输出
        fork, v := range mm {
            fmt.Println(k, v)
        }

    输出:

    a 1
    b 3
    c 5
    d 7

    删除map中的键值对使用delete()函数

    //删除mm键值对中的b
        delete(mm, "b")
        //删除后输出
        fork, v := range mm {
            fmt.Println(k, v)
        }

    输出:
    a 1
    c 5
    d 7

    请开始你的表演,践行,践行,再践行。未完待续。。。

    相关文章

      网友评论

          本文标题:跟我一起学习GO语言004

          本文链接:https://www.haomeiwen.com/subject/mxbmqctx.html