美文网首页
Go语言字典

Go语言字典

作者: AuglyXu | 来源:发表于2018-09-26 13:39 被阅读0次

什么是字典

  • Go语言字典和数组一样,是来保存一组相同的数据类型的

  • Go语言字典可以通过key值来获取数据

  • 格式:
    var 字典名称 map[key数据类型]value数据类型


定义字典的方式

  • 通过Go语言语法糖创建

    • var dict map[string]string = map[string]string{"name":"xxz" , "age":"18"}
    • dict := map[string]string{"name":"lnj", "age":"18"}
  • 通过make函数来创建

    • make(数据类型,字典长度)
   dict = make(map[string]string,3)
   dict["key"] = "value"
  • 通过make函数来创建(省略长度)
    • make(字典数据类型)
dict = make(map[string]string)
dict["key"] = "value"

定义字典的注意点

  1. 和切片一样,通过var 字典名称 map[key数据类型]value数据类型定义的字典不能直接使用,需要对字典进行初始化
//var dict map[string]string = map[string]string{"name" ; "xxz","age":"18"}
var dict map[string]string
dict = map[string]string{"name" ; "xxz","age":"18"}

2.在企业开发中通过make函数创建字典,如果知道字典的长度,那么尽量把字典的长度写上,有助于提高性能
3.如果字典的长度没有写,那么在添加字典的时候,底层会自动做扩容操作
4.字典中没有两个相同的key值,所以定义的时候不可以定义两个相同的key


字典的遍历

var dict map[string]string = map[string]string{"name" ; "xxz","age":"18"}
for key,value := range dict{
      fmt.Println("key = ", key, "value = ", value)
}

字典的增删改查

现有一字典var dict map[string]string = map[string]string{"name" ; "xxz","age":"18"}

  • 增加
    dict["key"] = "value"
    如果字典的没有对应的key值就是增加


  • del (字典名称,key值)
    会将指定字典中指定的key值删除


  • dict["key"] = "value"
    如果字典的有对应的key值就是修改


  • value,ok := dict["key"]
    如果存在key,对应的值返回给value,True返回给ok
    如果不存在,value接收到值数据类型对应的零值(int为0,字符串为""),False返回给ok

    企业开发中判断是否存在某个值的写法

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

字典作为函数参数

  • 字典作为函数参数是地址传递,修改形参的值会影响到实参
    var dict1 map[string]string = map[string]string{"name": "xxz", "age": "18"}
    //var dict2 map[string]string
    //dict2 = dict1
    fmt.Println(dict1)
    //dict2["name"] = "zs"
    change(dict1)
    fmt.Println(dict1)
}

func change(dict2 map[string]string)  {
    dict2["name"] = "zs"
}
  • 字典注意点补充:字典和数组切片不一样,字典保存的数据是无序的

相关文章

  • Go语言字典

    什么是字典 Go语言字典和数组一样,是来保存一组相同的数据类型的 Go语言字典可以通过key值来获取数据 格式:v...

  • 第九章:Go语言映射类型map

    1. map概述 Go语言中map字典类型时散列表(hash table)的实现,因为Go语言中将map中的每个键...

  • 11-Go语言字典

    字典 字典基本概念 和数组以及切片一样, 字典是用来保存一组相同类型的数据的,数组和切片可以通过索引获得对应元素的...

  • 【go语言学习】映射map

    Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key-value对的集合。Go语言中的map...

  • 潍坊go语言培训

    潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍...

  • Go语言 字典和结构体

    Go语言字典 概念 字典和数组切片一样也是用来保存一组相同类型数据的 数组和切片能通过相应的索引/下标获得对应的值...

  • 动手实现 Redis 字典(Go 语言)

    字典在 Redis 中是一个非常重要的数据结构,因为 Redis 本身就是一个键值数据库。我们先来回顾下在 Red...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

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

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

  • Go语言入坑

    GO语言基础 认识并安装GO语言开发环境 Go语言简介 Go语言是谷歌2009年发布的第二款开源编程语言 go语言...

网友评论

      本文标题:Go语言字典

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