go语言创建字典

简介: go语言创建字典

在Go语言中,并没有直接被称为“字典”的数据结构,但你可以使用map类型来模拟字典的行为。map是一种引用类型,它将一组键(key)映射到一组值(value)。一个键可以映射到最多一个值。

下面是如何在Go语言中创建和使用map(即字典)的示例:

声明和初始化map

你可以使用make函数来初始化一个空的map,或者直接使用map字面量来初始化一个包含一些键值对的map。

使用make函数

go复制代码
 package main  
 
   
 
 import "fmt"  
 
   
 
 func main() {  
 
     // 声明一个map,键的类型为string,值的类型为int  
 
     m := make(map[string]int)  
 
   
 
     // 添加键值对  
 
     m["one"] = 1  
 
     m["two"] = 2  
 
   
 
     // 访问map中的值  
 
     fmt.Println(m["one"]) // 输出: 1  
 
   
 
     // 检查键是否存在  
 
     value, exists := m["three"]  
 
     if !exists {  
 
         fmt.Println("Key does not exist")  
 
     }  
 
 }

使用map字面量

go复制代码
 package main  
 
   
 
 import "fmt"  
 
   
 
 func main() {  
 
     // 使用map字面量初始化map  
 
     m := map[string]int{  
 
         "one":   1,  
 
         "two":   2,  
 
         "three": 3,  
 
     }  
 
   
 
     // 访问map中的值  
 
     fmt.Println(m["two"]) // 输出: 2  
 
   
 
     // 遍历map  
 
     for key, value := range m {  
 
         fmt.Println(key, value)  
 
     }  
 
 }

遍历map

如上例所示,你可以使用range关键字来遍历map中的所有键值对。遍历的顺序是随机的,每次程序运行时可能不同。

删除map中的元素

你可以使用内置的delete函数来从map中删除键值对。

go复制代码
 delete(m, "two") // 从m中删除键为"two"的键值对

注意事项

当你从map中读取一个不存在的键时,会得到该map值类型的零值。对于int类型,零值是0;对于string类型,零值是空字符串""。

map是引用类型,当你将一个map赋值给另一个变量时,两个变量将引用同一个map对象。对任一变量的修改都会影响到另一个。

如果你想创建一个不可变的map(即其内容在创建后不能被修改),你需要在逻辑上确保不修改它,因为Go语言本身不提供内置的不可变map类型。


相关文章
|
5月前
|
存储 安全 Java
【Golang】(4)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法
结构体可以存储一组不同类型的数据,是一种符合类型。Go抛弃了类与继承,同时也抛弃了构造方法,刻意弱化了面向对象的功能,Go并非是一个传统OOP的语言,但是Go依旧有着OOP的影子,通过结构体和方法也可以模拟出一个类。
315 3
|
7月前
|
Cloud Native 安全 Java
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
465 1
|
7月前
|
Cloud Native Go API
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
519 0
|
7月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
345 0
|
7月前
|
Cloud Native Java 中间件
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
395 0
|
7月前
|
Cloud Native Java Go
Go:为云原生而生的高效语言
Go:为云原生而生的高效语言
428 0
|
7月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
7月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
8月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
8月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
567 0

热门文章

最新文章