Go语言学习[5]_字典、字符串

Go语言学习

道法自然


前言

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言语法简单,包含了类C语法。快速的编译时间,开发效率和运行效率高。组合的思想、无侵入式的接口。


一、字典

map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。

1.1定义字典

var m1 map[string]int
m2 := make(map[int]interface{
   }, 100)
m3 := map[string]string{
   
	"name": "james",
	"age":  "35",
}

在定义字典时不需要为其指定容量,因为map是可以动态增长的,但是在可以预知map容量的情况下为了提高程序的效率也最好提前标明程序的容量。需要注意的是,不能使用不能比较的元素作为字典的key,例如数组,切片等。而value可以是任意类型的,如果使用interface{}作为value类型,那么就可以接受各种类型的值,只不过在具体使用的时候需要使用类型断言来判断类型。

1.2字典操作

  • 加入
    向字典中放入元素也非常简单

    m3["key1"] = "v1"
    m3["key2"] = "v2"
    m3["key3"] = "v3"
    
  • 长度
    我们可以使用len来获取字典的长度。

    len(m3)
    
  • 判断空
    在有些情况下,我们不能确定键值对是否存在,或者当前value存储的是否就是空值,go语言中我们可以通过下面这种方式很简便的进行判断。

    if value, ok := m3["name"]; ok {
         
    		fmt.Println(value)
    	}
    

    上面这段代码的作用就是如果当前字典中存在key为name的字符串则取出对应的value,并返回true,否则返回false。

  • 遍历
    对于一个已经存在的字典,我们如何对其进行遍历呢?可以使用下面这种方式:

    for key, value := range m3 {
         
    		fmt.Println("key: ", key, " value: ", value)
    }
    

    如果多运行几次上面的这段程序会发现每次的输出顺序并不相同,对于一个字典来说其默认是无序的

  • 删除
    如果已经存在与字典中的值已经没有作用了,我们想将其删除怎么办呢?可以使用go的内置函数delete来实现。

    delete(m3, "key1")
    
  • 特殊
    不仅如此我们还可以将函数作为值类型存入到字典中:

func
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值