GO 語言學習 之 Map

????????map?是 Go 語言中非常重要的數據結構,常用于需要快速查找、統計或分組數據的場景。

map定義:

package mainimport "fmt"func main() {var m1 map[int]string            // 創建一個 mapm2 := make(map[int]string)       // 創建一個 map m3 := make(map[int]string, 10)   // 創建一個長度為 10 的 mapm4 := map[int]string {1:"1111", 2:"2222", 3:"3333"} // 創建并初始化 mapv, ok := m1[1]if ok {fmt.Println(v, ok)} else {fmt.Println(v, ok)}for key, value := range m1 {fmt.Println("m1 的內容 :", key, value)}fmt.Println(m1)fmt.Println(m2)fmt.Println(m3)fmt.Println(m4)
}

map 的特征:

  • map 是一種無序的鍵值對的集合
  • map 的重要用途是是通過 key 來快速檢索數據,類似于hash值的效果,key 類似于索引,指向數據的值。
  • map 遍歷?時返回的鍵值對的順序是不確定的。
  • 在遍歷map的時候,如果鍵不存在,返回該類型的零值,例如 int 類型的零值是 0,string 類型的零值是 ""。
  • map 和切片一樣,是引用類型。如果將map類型作為函數的參數,它們都引用同一個map。因此,對 map 的修改會影響到所有的引用。
  • map 的 key 不允許重復,重復對同一個 key 進行賦值,值將被覆蓋,只保存最后一次賦值的內容

map的常見操作:

package mainimport "fmt"func main() {m1 := make(map [int]string)// 添加一個元素m1[1] = "1111"m1[2] = "2222"fmt.Println(m1)// 修改元素的值m1[1] = "壹壹壹壹"fmt.Println(m1)// map 的長度fmt.Println(len(m1))// 遍歷 map *** 只能這么遍歷,除非你單獨存了一份 key 值,可以通過遍歷 key 值,間接遍歷了mapfor k, v := range m1 {fmt.Println("遍歷 m1 ", k, v)}v, ok := m1[3]if !ok {fmt.Println("3 is not exist. v 的結果是零值 : ", v)}// 刪除元素 (根據 key 刪除某一個元素)delete(m1, 1)fmt.Println(m1)// 清空clear(m1)fmt.Println(m1)
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89219.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是可觀測性?監控、日志、追蹤三者之間有什么區別?

一、引言:為什么現代系統需要“看得見”? 你是否遇到過這樣的情況:系統運行突然變慢,但沒人知道問題出在哪?隨著微服務、云原生架構的普及,系統的復雜度越來越高,傳統的“靠經驗判斷”已經無法…

扣子(coze)實戰|自動搬運+改寫+歸檔!自媒體矩陣終極方案

今天給大家分享的是用coze做一個工作流來自動提取抖音/小紅書視頻文案及改寫并傳入到飛書多維表格,我們先來看案例 上傳視頻鏈接即可一鍵生成,廢話不多說,上教程~ 一、整體工作流如下: 二、開發思路: 三、詳細工作流分…

K8s環境下基于Nginx WebDAV與TLS/SSL的文件上傳下載部署指南

#作者:閆乾苓 文章目錄 1.問題及背景2.方案說明3.部署步驟3.1 制作TLS/SSL私有證書3.2 創建訪問nginx賬戶密碼文件并創建secret3.3 為TLS/SSL私有證書創建secret3.4 為Nginx 配置文件創建confimap3.5 使用deployment,svc部署nginx3.6 客戶端curl上傳下載…

【Day 7-N17】Python函數(1)——函數定義、位置參數調用函數、關鍵字參數調用函數、函數的默認值

挑戰14天學會Python,第7天學習筆記!加油! 一、概述 函數(Function)是 Python 中用于封裝可重用代碼塊的基本結構。通過定義函數,我們可以將復雜邏輯拆分為更小、更易管理的單元,并通過參數傳遞…

STM32 驅動 ADS1015 單端 差分 多通道模式 ADC 轉換

文章目錄 一、ADS1015簡介二、引腳功能三、寄存器介紹1.Conversion Register 轉化數據存放寄存器2.Config Register 配置寄存器 四、IIC時序1.寫寄存器2.讀寄存器 五、程序六、實驗現象1.單端模式2.差分模式3.偽多通道模式 一、ADS1015簡介 ADS1015 是一款由德州儀器&#xff…

RabbitMQ 消費冪等性與消息重放實現

一、冪等性實現 1.1 什么是冪等性? 冪等性是指同一條消息無論被消費多少次,業務結果都只生效一次,防止重復扣款、重復發貨等問題。 RabbitMQ 的投遞模式是“至少一次交付”(at-least-once delivery),如果消費者處理失敗或者沒有及…

【HarmonyOS 5】鴻蒙TEE(可信執行環境)詳解

【HarmonyOS 5】鴻蒙TEE(可信執行環境)詳解 一、TEE是什么? 1、TEE的定義: 可信執行環境(Trusted Execution Environment),簡稱TEE,是存在于智能手機、平板或任意移動設備主處理器…

算法: 冒泡排序

冒泡排序是一種簡單的排序算法,通過相鄰元素的比較和交換,使較大的元素逐漸"浮"到數組末尾。 時間復雜度:最佳 O(n) | 平均 O(n) | 最差 O(n) 空間復雜度:O(1) 穩定性:穩定 應用場景/前提條件 適用于小規模數據對幾乎已排序的數據效率較高…

基于SpringBoot的家電銷售展示平臺

源碼編號:S567 源碼名稱:基于SpringBoot的家電銷售展示平臺 用戶類型:雙角色,用戶、管理員 數據庫表數量:14 張表 主要技術:Java、Vue、ElementUl 、SpringBoot、Maven 運行環境:Windows/M…

java+vue+SpringBoo智慧旅游系統(程序+數據庫+報告+部署教程+答辯指導)

源代碼數據庫LW文檔(1萬字以上)開題報告答辯稿ppt部署教程代碼講解代碼時間修改工具 技術實現 開發語言:后端:Java 前端:vue框架:springboot數據庫:mysql 開發工具 JDK版本:JDK1.…

Docker 入門教程(三):鏡像操作命令

文章目錄 🐳 Docker 入門教程(三):鏡像操作命令獲取鏡像:docker pull查看鏡像:docker images刪除鏡像:docker rmi搜索鏡像:docker search鏡像打標簽:docker tag鏡像詳情與…

如何修改discuz文章標題字數限制 修改成255

在 Discuz! X3.5 中,文章(主題)標題字數的限制可以通過修改數據庫結構以及后臺配置來實現,以下是完整的修改方法,將標題長度限制改為 255 個字符: ? 一、修改數據庫字段長度 Discuz 默認標題字段是 subje…

基于BP神經網絡的26個英文字母識別

本課題旨在設計并實現一個基于BP(反向傳播)神經網絡的英文字母識別系統,實現對手寫或打印的26個英文字母(A-Z)的自動分類識別。項目首先對字母圖像進行預處理(如灰度化、歸一化、二值化和特征提取&#xff…

系統架構設計師論文分享-論云原生技術的應用

我的軟考歷程 摘要 2023年2月,我所在的公司做了開發紗線MES系統的決定,該系統為國內紗線工廠提供SAAS服務,旨在提高紗線工廠的智能化和數字化水平。我在該項目中被任命為系統架構設計師,全面掌管該項目的架構設計工作。該項目涉…

重置 MySQL root 密碼

引言 在linux可能存在安裝mysql安裝失敗,一直不出現默認密碼 /usr/local/mysql/mysql-8.0.26/bin/mysqld --defaults-file/etc/my.cnf --usermysql --basedir/usr/local/mysql/mysql-8.0.26 --datadir/usr/local/mysql/mysql-8.0.26/data --lower-case-table-name…

面試八股---HTML

面試八股 1、HTML 1.1 src和href的區別 src 用于替換當前元素,href 用于在當前文檔和引用資源之間確立聯系。 核心區別在于 href 關聯的資源(主要是 CSS)是用于描述頁面外觀的,瀏覽器可以先生成內容再應用樣式,因此…

氣候智能體:AI如何重構人類應對氣候危機的決策體系?

前言 前些天發現了一個巨牛的人工智能免費學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站 《氣候智能體:AI如何重構人類應對氣候危機的決策體系?》 展開全景式論述。文章結合2025年最新技術突破與…

UITableView的位置向下偏移, contentInsetAdjustmentBehavior使用詳情

一.contentInsetAdjustmentBehavior 作用: 在iOS 11及以后,蘋果引入了安全區域(Safe Area)的概念,當UITableView的frame超出了安全區域,系統會自定調整SafeAreaInsets的值,它可以自動調整內容的內邊距,使得內容不會被導航欄遮擋。…

騰訊云RayData全新推出“行業解決方案模板”,一鍵快捷制作3D數據可視化作品

點擊藍字? 關注我們 本文共計958字 預計閱讀時長3分鐘 騰訊云RayData Plus是一款專注于高視效的3D數據可視化的實時渲染工具。 功能全面:提供了三維、二維、動畫、數據、交互邏輯等各類能力; 零代碼制作:靈活的節點式創作,即便沒…

深度解析基于貝葉斯的垃圾郵件分類

貝葉斯垃圾郵件分類的核心邏輯是基于貝葉斯定理,利用郵件中的特征(通常是單詞)來計算該郵件屬于“垃圾郵件”或“非垃圾郵件”的概率,并根據概率大小進行分類。它是一種樸素貝葉斯分類器,因其假設特征(單詞…