美文网首页
跟我一起学习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

    接上一节继续学习Go语言,存储和组织数据的方式 首先我们来学习数组,数组是一段固定长度的连续内存区域。 数组声明:...

  • 跟我一起学习GO语言008

    本节我们来看GO语言中的并发。 我们看并发,就不得不学习goroutine,goroutine是Go语言...

  • 跟我一起学习GO语言007

    接上节,获得可变参数类型,可变参数为interface{}类型时,可以传入任何类型的值。 func printTy...

  • 跟我一起学习GO语言009

    本节我们做Go语言的一些语法回顾,通过语法我们可以发现Go语言非常简单,只有25个关键字,接下来我们回顾一下关键...

  • 跟我一起学习GO语言-小结

    学习GO语言有一段时间了,也写了不少的章节,因时间有点长了,所以我们对前面所学的知识做一下小结,然后作为一个目录,...

  • 跟我一起学习GO语言003

    接上一节继续学习Go基本语法与使用-字符串应用 通过Go语言内建函数获取切片、字符串、通道等长度。 例如-01: ...

  • 跟我一起学习GO语言006

    接下来我们看函数,这个是各种语言中重要的组成部分 func 函数名(参数列表)(返回参数列表){ 函数内容} 来...

  • 跟我一起学习GO语言005

    接上一节继续学习Go语言,存储和组织数据的方式 首先我们来看看列表增删方法 初始化列表:变量名:=list.New...

  • Go 语言学习技巧和编程思维

    Go 语言学习技巧和编程思维 一、了解 Go 语言 了解 Go 语言背景 学习 Go 语言,首先要了解 Go 语言...

  • 跟我一起学习GO语言012——表单操作

    上一节我们介绍了搭建一个Web服务器,本节我们来看看通过表单让客户端和服务器方便的进行数据交互,首先我们来看看一...

网友评论

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

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