回覆「Go語言」便可獲贈Python從入門到進階共10本電子書javascript
前言
Hey,你們好,我是星期八,我們接着上次繼續說,補充一些map的知識。less
上節回顧
在上節,咱們學習了map如何使用。編輯器
map有兩種方式定義,一種是標準方式,聲明時賦值,一種是make。ide
package main
import "fmt"
func main() {
var stu1 = map[string]string{ "Name": "張三", "Age": "18", "height": "188", //每行都要以,結尾,}
stu2:=make(map[string]string,10) stu2["Name"] = "李四" stu2["Age"] = "170" stu2["height"] = "109"
fmt.Println(stu1,stu2) //map[Age:18 Name:張三 height:188] map[Age:170 Name:李四 height:109]}
發現問題
不知道你有沒有發現一個問題,咱們如今存儲的map好像只能存儲一個。學習
應該來講,我應該有個列表,存儲着一個個的學生信息。flex
僞代碼:
var student_list = [張三的信息,李四的信息,王五的信息,...]
可是玩了這麼久,依然仍是一個個單的的信息,這搞得,害。
切片中存儲map
咱們知道切片,是這樣定義的。
var names []stringvar names = []string{}var names = make([]string,0,10)
上述中,列表保存的都是基本類型,字符串了,數字了,等。
來點刺激的,列表中直接存map。
僞代碼
var names = []map[string]string{}//注意:map[string]string{}是切片裏面值的類型,這個切片裏面的每一個值都是map類型
示例代碼
package main
import "fmt"
func main() { //定義個類型是map的列表 var names = []map[string]string{} var name1 = map[string]string{ "Name": "張三", "Age": "18",} var name2 = map[string]string{ "Name": "李四", "Age": "22",} names = append(names, name1, name2) //向列表中添加map fmt.Println(names) //[map[Age:18 Name:張三] map[Age:22 Name:李四]]}
圖解
map中保存切片
在以往的操做中,咱們的map的key和value都是一個值。
那像一我的的愛好了,生活習慣了,等,都不止一個,因此,在map中,map的值(value),應該能保存多個纔對。
代碼
package main
import "fmt"
func main() { //map中,value爲切片類型 var person_hoppy = map[string][]string{} person_hoppy["hoppy"] = []string{"吃", "喝", "拉", "撒"} fmt.Println(person_hoppy)//map[hoppy:[吃 喝 拉 撒]]}
圖解
注:在map中,key只能是固定值,由於要經過key找值,因此key不能修改,value能夠是任意類型。
總結
上述咱們補充了一些map的知識。若是在操做過程當中有任何問題,記得下面討論區留言,咱們看到會第一時間解決問題。
我是碼農星期八,若是以爲還不錯,記得動手點贊一下哈。感謝你的觀看。
------------------- End -------------------
歡迎你們點贊,轉發,轉載,感謝你們的相伴與支持
想加入學習羣請在後臺回覆【入羣】
萬水千山老是情,點個【在看】行不行
本文分享自微信公衆號 - Go語言進階學習(gh_dced3d6523fb)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。