婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > go語言map與string的相互轉換的實現

go語言map與string的相互轉換的實現

熱門標簽:湛江crm外呼系統排名 鄭州智能語音電銷機器人價格 仙桃400電話辦理 上海極信防封電銷卡價格 重慶慶云企業400電話到哪申請 不封卡外呼系統 宿遷便宜外呼系統代理商 地圖標注免費定制店 寧波語音外呼系統公司

一.map轉string

import (
 "encoding/json"
)
 
func MapToJson(param map[string]interface{}) string{
 dataType , _ := json.Marshal(param)
 dataString := string(dataType)
 return dataString
}

二.string轉map

import (
 "encoding/json"
)
 
func JsonToMap(str string) map[string]interface{} {
 
 var tempMap map[string]interface{}
 
 err := json.Unmarshal([]byte(str), tempMap)
 
 if err != nil {
 panic(err)
 }
 
 return tempMap
}

補充:Map的基本使用

1 Map介紹

Map 是 Go 中的內置類型,它將鍵與值綁定到一起。可以通過鍵獲取相應的值。

可以通過將鍵和值的類型傳遞給內置函數 make 來創建一個 map。語法為:make(map[KeyType]ValueType)。(譯者注:map 的類型表示為 map[KeyType]ValueType)例如:

personSalary := make(map[string]int)

上面的代碼創建了一個名為 personSalary 的 map。其中鍵的類型為 string,值的類型為 int。

map 的 0 值為 nil。試圖給一個 nil map 添加元素給會導致運行時錯誤。因此 map 必須通過 make 來初始化(譯者注:也可以使用速記聲明來創建 map,見下文)。

package main
import ( 
  "fmt"
)
 
func main() { 
  var personSalary map[string]int
  if personSalary == nil {
    fmt.Println("map is nil. Going to make one.")
    personSalary = make(map[string]int)
  }
}

2 Map插入元素

插入元素給 map 的語法與數組相似。下面的代碼插入一些新的元素給 map personSalary。

func main() { 
  personSalary := make(map[string]int)
  personSalary["steve"] = 12000
  personSalary["jamie"] = 15000
  personSalary["mike"] = 9000
  fmt.Println("personSalary map contents:", personSalary)
}

也可以在聲明時初始化一個數組:

func main() { 
  personSalary := map[string]int {
    "steve": 12000,
    "jamie": 15000,
  }
  personSalary["mike"] = 9000
  fmt.Println("personSalary map contents:", personSalary)
}

string 并不是可以作為鍵的唯一類型,其他所有可以比較的類型,比如,布爾類型,整型,浮點型,復數類型都可以作為鍵。

3 訪問Map元素

根據鍵獲取值的語法為:map[key],例如:

func main() { 
  personSalary := map[string]int{
    "steve": 12000,
    "jamie": 15000,
  }
  personSalary["mike"] = 9000
  employee := "jamie"
  fmt.Println("Salary of", employee, "is", personSalary[employee])
}

上面的程序非常簡單。員工 jamie 的工資被取出并打印。程序的輸出為:Salary of jamie is 15000。

如果一個鍵不存在會發生什么?map 會返回值類型的 0 值。比如如果訪問了 personSalary 中的不存在的鍵,那么將返回 int 的 0 值,也就是 0。

我們如何檢測一個鍵是否存在于一個 map 中呢?可以使用下面的語法:

 value, ok := map[key] 

上面的語法可以檢測一個特定的鍵是否存在于 map 中。如果 ok 是 true,則鍵存在,value 被賦值為對應的值。如果 ok 為 false,則表示鍵不存在。

func main() { 
  personSalary := map[string]int{
    "steve": 12000,
    "jamie": 15000,
  }
  personSalary["mike"] = 9000
  newEmp := "joe"
  value, ok := personSalary[newEmp]
  if ok == true {
    fmt.Println("Salary of", newEmp, "is", value)
  } else {
    fmt.Println(newEmp,"not found")
  }
}

range for 可用于遍歷 map 中所有的元素

package main
import "fmt"
func main() {
 personSalary := map[string]int{
 "steve": 12000,
 "jamie": 15000,
 }
 personSalary["mike"] = 9000
 fmt.Println("All items of a map")
 for key, value := range personSalary {
 fmt.Printf("personSalary[%s] = %dn", key, value)
 }
}

值得注意的是,因為 map 是無序的,因此對于程序的每次執行,不能保證使用 range for 遍歷 map 的順序總是一致的。

4 刪除元素

delete(map, key) 用于刪除 map 中的 key。delete 函數沒有返回值。

func main() {
 personSalary := map[string]int{
 "steve": 12000,
 "jamie": 15000,
 }
 personSalary["mike"] = 9000
 fmt.Println("All items of a map")
 delete(personSalary, "steve")
 for key, value := range personSalary {
 fmt.Printf("personSalary[%s] = %dn", key, value)
 }
}

map 的大小

用內置函數 len 獲取 map 的大小:

func main() { 
  personSalary := map[string]int{
    "steve": 12000,
    "jamie": 15000,
  }
  personSalary["mike"] = 9000
  fmt.Println("length is", len(personSalary))
}

map 是引用類型

與切片一樣,map 是引用類型。當一個 map 賦值給一個新的變量,它們都指向同一個內部數據結構。因此改變其中一個也會反映到另一個:

func main() { 
  personSalary := map[string]int{
    "steve": 12000,
    "jamie": 15000,
  }
  personSalary["mike"] = 9000
  fmt.Println("Original person salary", personSalary)
  newPersonSalary := personSalary
  newPersonSalary["mike"] = 18000
  fmt.Println("Person salary changed", personSalary)
}

將 map 作為參數傳遞給函數也是一樣的。在函數中對 map 的任何修改都會影響在調用函數中看到。

 比較 map

map 不能通過 == 操作符比較是否相等。== 操作符只能用來檢測 map 是否為 nil。

func main() { 
  map1 := map[string]int{
    "one": 1,
    "two": 2,
  }
  map2 := map1
  if map1 == map2 {
  }
}

上面的程序將會報錯:invalid operation: map1 == map2 (map can only be compared to nil)。

比較兩個 map 是否相等的方式是一一比較它們的元素是否相等。大家自己實現一下即可。

//判斷兩個map是否相等
func mapAndmap(mymap1 map[string]int, mymap2 map[string]int) bool {
 //判斷兩個map長度是否相同 如果不判斷可能會出現后面包含前面的問題
 if len(mymap1) != len(mymap2) {
 return false
 }
 //判斷值是否相同
 for key, value := range mymap1 {
 if value != mymap2[key] {
  return false
 }
 }
 return true
}

到此這篇關于go語言map與string的相互轉換的實現的文章就介紹到這了,更多相關go語言map與string相互轉換內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Java中InputSteam怎么轉String
  • 淺談Java中String的常用方法
  • Java實用工具之StringJoiner詳解
  • golang 的string與[]byte轉換方式
  • Golang 實現interface類型轉string類型
  • Java基礎入門語法--String類

標簽:海南 物業服務 電子產品 青海 安康 遼寧 儋州 西雙版納

巨人網絡通訊聲明:本文標題《go語言map與string的相互轉換的實現》,本文關鍵詞  語言,map,與,string,的,相互,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《go語言map與string的相互轉換的實現》相關的同類信息!
  • 本頁收集關于go語言map與string的相互轉換的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    av在线一区二区三区| 国产不卡视频一区二区三区| 成人av免费观看| 亚洲黄色免费电影| 精品99999| 欧美视频一区在线观看| 国产精品66部| 亚洲成人av免费| 国产精品国模大尺度视频| 欧美亚男人的天堂| 91蜜桃免费观看视频| 亚洲国产三级在线| 国产精品福利一区| 国产亚洲成aⅴ人片在线观看| 欧美激情在线一区二区三区| 精品91自产拍在线观看一区| 7777精品伊人久久久大香线蕉经典版下载 | 国产福利视频一区二区三区| 一区二区三区四区在线免费观看| 久久精品夜色噜噜亚洲a∨| 欧美电视剧在线看免费| 日韩欧美亚洲国产另类| 欧美电影一区二区| 欧美精品123区| 欧美日韩精品一区视频| 色婷婷激情综合| 色av综合在线| 亚洲午夜一区二区| 一区二区三区四区国产精品| 亚洲欧洲另类国产综合| 久久久久久久网| 一区二区三区欧美| 亚洲裸体xxx| av午夜一区麻豆| 成人高清在线视频| 国产91丝袜在线播放0| 国产经典欧美精品| 精品系列免费在线观看| 日本不卡123| 麻豆成人免费电影| 国产一区二区三区在线看麻豆| 乱中年女人伦av一区二区| 精品一区二区三区日韩| 国产风韵犹存在线视精品| 国产aⅴ综合色| 欧美在线三级电影| 91精品中文字幕一区二区三区| 日韩视频免费观看高清完整版在线观看 | 亚洲人精品午夜| 国产精品一区二区x88av| 久久精品国产免费看久久精品| 美女视频黄频大全不卡视频在线播放| 美女视频网站黄色亚洲| 国产裸体歌舞团一区二区| thepron国产精品| 欧美日免费三级在线| 日韩欧美一区二区久久婷婷| 日韩精品中文字幕一区二区三区| 久久精品一区二区三区不卡牛牛| 国产精品久久久久久久久图文区| 亚洲欧美电影院| 日韩国产精品大片| 国产高清久久久久| 欧美亚洲尤物久久| 精品国产人成亚洲区| 国产精品丝袜久久久久久app| 亚洲欧美一区二区久久| 色哦色哦哦色天天综合| 日韩欧美三级在线| 亚洲黄色尤物视频| 三级成人在线视频| 亚洲免费观看高清完整| 免费av网站大全久久| 波多野结衣在线一区| 日韩三级免费观看| 亚洲午夜在线视频| 国产精品一线二线三线精华| 成人av资源在线| 精品成人一区二区三区四区| 国产精品私人影院| 国产精品综合一区二区三区| 91在线观看一区二区| 精品电影一区二区| 亚洲一区二区三区视频在线播放| 激情偷乱视频一区二区三区| 欧美日韩一二三区| 亚洲精品欧美在线| 成人午夜在线播放| 欧美精品一区视频| 青青草97国产精品免费观看无弹窗版| 91在线无精精品入口| 亚洲欧洲日本在线| 亚洲高清视频的网址| 色综合av在线| 91精品国产综合久久精品图片| 自拍偷拍亚洲综合| 99久久伊人精品| 欧美色视频在线| 亚洲一区二区视频| 91高清视频在线| 亚洲午夜视频在线观看| 91传媒视频在线播放| 中文字幕亚洲区| 91一区二区在线| 亚洲精品国产一区二区三区四区在线 | 国产精品亚洲午夜一区二区三区 | 亚洲成在线观看| 欧美这里有精品| 五月天中文字幕一区二区| 欧美色成人综合| 亚洲综合丝袜美腿| 91九色最新地址| 亚洲h在线观看| 欧美另类久久久品| 日韩精品成人一区二区三区 | 91小视频在线| 亚洲九九爱视频| 在线电影国产精品| 日韩不卡免费视频| 欧美一区二区三区日韩| 日韩国产精品91| 日韩精品一区二区三区三区免费 | 久久国产三级精品| 2020国产精品| 99久久精品国产一区二区三区 | 韩日精品视频一区| 久久亚洲一级片| 波多野结衣亚洲一区| 亚洲成人免费在线| 精品久久久久久久人人人人传媒| 久久91精品久久久久久秒播| 久久久久国产精品麻豆| www.日韩大片| 亚洲电影中文字幕在线观看| 欧美精品一区二区蜜臀亚洲| 国产98色在线|日韩| 性做久久久久久久久| 精品人伦一区二区色婷婷| 成人禁用看黄a在线| 亚洲一区在线视频| 久久免费午夜影院| 欧美色视频在线观看| 国产ts人妖一区二区| 亚洲成人你懂的| 国产色爱av资源综合区| 欧美无人高清视频在线观看| 国精产品一区一区三区mba桃花| 亚洲精品菠萝久久久久久久| 日韩欧美一区在线| 99综合电影在线视频| 亚洲国产精品久久艾草纯爱| 精品成人一区二区三区四区| 色吧成人激情小说| 成人精品国产福利| 精品一区二区三区欧美| 亚洲第一av色| 国产精品理论在线观看| 日韩欧美亚洲另类制服综合在线| 99riav久久精品riav| 国产精品影视在线观看| 日本免费在线视频不卡一不卡二| 亚洲精品欧美激情| 中文字幕一区二区三区四区不卡| 日韩欧美的一区| 欧美日韩国产一二三| 91亚洲精品久久久蜜桃网站 | 精品国产免费久久| 91精品久久久久久久91蜜桃| 欧洲色大大久久| 99这里都是精品| 岛国一区二区在线观看| 麻豆精品久久精品色综合| 亚洲国产精品精华液网站| 一区二区免费看| 亚洲欧美综合在线精品| 中文字幕欧美日韩一区| 久久欧美中文字幕| 久久亚洲精品国产精品紫薇| 精品入口麻豆88视频| 欧美一区永久视频免费观看| 9191精品国产综合久久久久久| 欧洲一区二区三区免费视频| 一道本成人在线| 在线看国产日韩| 91国偷自产一区二区三区成为亚洲经典 | 国产精品高潮久久久久无| 精品999久久久| 久久久亚洲国产美女国产盗摄| 日韩精品自拍偷拍| 精品粉嫩aⅴ一区二区三区四区| 精品免费国产二区三区| 久久色.com| 国产欧美精品一区| 国产欧美一区二区精品忘忧草| 2021久久国产精品不只是精品 | 国产精品五月天| 亚洲日本韩国一区| 亚洲国产aⅴ天堂久久| 亚洲国产精品久久人人爱蜜臀| 全国精品久久少妇|