Go学习第三天

map的三种声明定义方式

声明map后,一定要make开辟空间,否则会报越界且不能使用

package mainimport "fmt"func main() {// 第一种声明方式// 声明myMap1是一种map类型 key是string  value是stringvar myMap1 map[string]string// 判断一下map在未开辟空间之前是否为空if myMap1 == nil {fmt.Println("myMap1是一个空map")}// 通过make关键字来给map开辟空间myMap1 = make(map[string]string, 10)myMap1["one"] = "java";myMap1["two"] = "c++";myMap1["three"] = "go";fmt.Println(myMap1)// 第二种声明方式-常用方式myMap2 := make(map[int]string)myMap2[1] = "java"myMap2[2] = "go"myMap2[3] = "py"fmt.Println(myMap2)// 第三种声明方式myMap3 := map[string]string{"one":"php","two":"c++","three":"java",}fmt.Println(myMap3)
}

请添加图片描述

map的使用方式

package mainimport "fmt"// 打印map集合
func printMap(cityMap map[string]string) {for key, value := range cityMap {fmt.Print("key:", key)fmt.Println("  value:", value)}
}// 更改map指定key的值
func changeMapValue(cityMap map[string]string) {cityMap["Japan"] = "Tokyoooooo"
}// 增加map
func addMapValue(cityMap map[string]string, key string, vale string) {if len(key) > 0 && len(vale) > 0 {cityMap[key] = vale}
}// 拷贝一个map
func copyMap(cityMap map[string]string) (map[string]string) {newMap := make(map[string]string)for key, value := range cityMap {newMap[key] = value}return newMap
}func main() {// 定义一个map,开辟空间cityMap := make(map[string]string)// 给map添加数据cityMap["China"] = "BeiJing"cityMap["Japan"] = "Tokyo"cityMap["USA"] = "NewYork"printMap(cityMap)fmt.Println("==========init===========")// 删除delete(cityMap, "USA")printMap(cityMap)fmt.Println("==========delete===========")// 修改changeMapValue(cityMap)printMap(cityMap)fmt.Println("==========update===========")// 添加addMapValue(cityMap, "张三", "zhangsan")printMap(cityMap)fmt.Println("==========add===========")// 拷贝一个mapreturnCopyMap := copyMap(cityMap)printMap(returnCopyMap)fmt.Println("=========copy============")
}

struct基本定义与使用

package mainimport "fmt"// 声明一种新的数据类型,是int的一个别名
type myint int// 定义一个结构体
type Book struct {title stringauth stringprice int
}// 传递一个book的副本,更改价格,打印不会生效,因为传递的是副本
func changeBook(book Book) {// 传递副本book.price = 55
}// 传递一个book的指针,更改价格,打印会生效,因为传递的是地址
func changeBook2(book *Book)  {// 传递指针book.price = 55
}func main() {/*var a myint = 10fmt.Println("a = ", a)fmt.Printf("type of a = %T \n", a)*/var book Bookbook.title = "GO入门到放弃"book.auth = "自学"book.price = 100fmt.Printf("%v\n", book)fmt.Println("==========init===========")changeBook(book)fmt.Printf("%v\n", book)fmt.Println("==========副本update===========")changeBook2(&book)fmt.Printf("%v\n", book)fmt.Println("==========指针update2===========")
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/74566.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ad+硬件每日学习十个知识点(20)23.7.31 (芯片和天线间的巴伦电路)

文章目录 1.什么是前端电路?2.什么是巴伦电路?3.巴伦电路的性能参数4.LC巴伦电路5.ADS是干什么的?6.HFSS是干什么的?7.ANSYS有限元软件8.常用的电路仿真软件都有什么?9.巴伦电路的复端阻抗LC10.微带巴伦(不…

数据可视化(七)常用图表的绘制

1. #seaborn绘制常用图表 #折线图 #replot(x,y,kind,data) #lineplot(x,y,data) #直方图 #displot(data,rug) #条形图 #barplot&…

【雕爷学编程】 MicroPython动手做(35)——体验小游戏

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

机器学习笔记之优化算法(九)收敛速度的简单认识

机器学习笔记之优化算法——收敛速度的简单认识 引言收敛速度的判别标准 Q \mathcal Q Q-收敛速度 R \mathcal R R-收敛速度关于算法复杂度与收敛速度 引言 本节对收敛速度简单介绍。 收敛速度的判别标准 我们之前几节介绍了线搜索方法 ( Line Search Method ) (\text{Line …

bash的特性(二)IO重定向与管道

bash的I/O重定向及管道 一、概述 在shell中,最常使用的fd(file descriptor)有三个,标准输入,标准输出,错误输出。进程用文件描述符来管理打开的文件。 名称 文件描述符 标准输入(stdin) 0 键盘,也可以…

【BEV感知】3-BEV开源数据集

3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…

【BEV感知】1-BEV感知算法介绍

1-BEV感知算法介绍 1 什么是BEV感知算法?1.1 什么是BEV?1.2 什么是感知?1.3 什么是算法?1.4 什么是BEV感知? 1 什么是BEV感知算法? 1.1 什么是BEV? Bird’s-Eye-View,尺度变化小、…

优化供应链和库存管理:PDM系统的物料控制之道

在现代制造业中,优化供应链和库存管理是企业实现高效运营和降低成本的重要目标。PDM系统作为一款强大的数字化工具,扮演着物料控制之道的角色,帮助企业实现优化供应链和库存管理的目标。让我们一同深入探讨,看看PDM系统是如何通过…

站点可靠性工程 (SRE)

随着世界各地的组织努力开发安全、可靠、可扩展且可持续的 IT 基础架构,对高效基础架构监控和管理的需求日益增长,企业正在用不可扩展的遗留架构换取现代解决方案,在尖端技术的推动下,这些使基础设施管理过程更加顺畅和轻松&#…

测试|测试分类

测试|测试分类 文章目录 测试|测试分类1.按照测试对象分类(部分掌握)2.是否查看代码:黑盒、白盒灰盒测试3.按开发阶段分:单元、集成、系统及验收测试4.按实施组织分:α、β、第三方测试5.按是否运行代码:静…

【雕爷学编程】MicroPython动手做(25)——语音合成与语音识别

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

内网横向移动—NTLM-Relay重放Responder中继攻击LdapEws

内网横向移动—NTLM-Relay重放&Responder中继攻击&Ldap&Ews 1. 前置了解1.1. MSF与CS切换权限1.1.1. CS会话中切换权限1.1.1.1. 查看进程1.1.1.2. 权限权限 1.1.2. MSF会话中切换权限 2. NTLM中继攻击—Relay重放—SMB上线2.1. 案例测试2.1.1. 同账户密码测试2.1.2…

GC 深入(小白,对gc有一个进一步的了解)

垃圾回收器的搭配 一般固定 一般这年轻代垃圾回收器,老年代垃圾回收器,如上图搭配着使用 1.8呢默认就是最后边那哥俩 jvm调优 一个就是增加吞吐量 一个就是减少STW的时间。 三色标记算法(理解根可达算法) 并发的可达性分析 有…

k8s集群部署nacos,采用的是 emptyDir 临时目录挂载

官方参考地址:https://nacos.io/zh-cn/docs/use-nacos-with-kubernetes.html 说明: 1、官网采用的nfs持久化部署 我将nacos持久化改成 emptyDir 临时目录挂载,同时又能满足自行调节nacos集群实例数。 2. emptyDir 临时目录挂载的nacos.ya…

【前端知识】React 基础巩固(四十三)——Effect Hook

React 基础巩固(四十三)——Effect Hook 一、Effect Hook的基本使用 Effect Hook 用来完成一些类似class中生命周期的功能。 在使用类组件时,不管是渲染、网路请求还是操作DOM,其逻辑和代码是杂糅在一起的。例如我们希望把计数器结果显示在标签上&…

【计算机视觉|人脸建模】3D人脸重建基础知识(入门)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 一、三维重建基础 三维重建(3D Reconstruction)是指根据单视图或者多视图的图像重建三维信息的过程。 1. 常见三维重建技术 人工几何模型仪器采集基于图像的建模描述基于几何建模…

opencv37-形态学操作-开运算(先腐蚀后膨胀)cv2.morphologyEx()-参数 op 设置为“cv2.MORPH_OPEN”

腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运算、闭运算(关运算)、形态学梯度(MorphologicalGradient)运算、礼帽运算(顶帽运算)、黑帽运算、击中…

使用AIGC工具提升安全工作效率

新钛云服已累计为您分享760篇技术干货 在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于: 开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、…

杂谈项——关于我在bw上的见闻,以及个人对二次元游戏行业方面的前瞻

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,今天为大家带来一点不一样的,首先先光速叠一下甲: 在此说明博主并不是一个什么都知道的大佬,只是一个普通的老二次元以及期望以后能…