go語言中鍵不一定只能是 string 型別。所有可比較的型別,如 boolean,interger,float,complex,string 等,都可以作為鍵
go語言中的map是hash map 是無序的
第一種:這種空的 ==nil
var mapname map[keytype]valuetype
var m3 map[string]string
此種方式建立的map無法對它進行賦值 需要使用內建函式
第二種
建立乙個map,並且並且新增內容
mapname:=map[string]string
第三種
使用make建立map這種空的等於empty type
mapname := make(map[keytype]valuetype)
m2 := make(map[string]string)
m2["aaa"] = "aaa"
fmt.println(m2)
package main
import
"fmt"
func
main()
fmt.
printf(,
&m1, m1)
//使用make()建立map
m2 :=
make
(map
[string
]string
) fmt.
println
("m2"
, m2)
fmt.
println
(m2 ==
nil)
// false make建立的map !=nil
//使用var 建立map 此種方式只是建立沒有初始化。建立後他的值為nil
var m3 map
[string
]string
fmt.
println
(m3 ==
nil)
//ture 建立後他的值為nil
//通過var 建立的map無法直接新增元素會報錯
//m3["name"] = "xiaoxingxing"
assignment to entry in nil map
//可以通過make()函式初始化即可新增元素
if m3 ==
nil m3[
"name"]=
"axing"
fmt.
println
("初始化m3後新增資料"
, m3)
}輸出結果
//m的內容:map[age:18 name:axing]
//m2 map
//false
//true
//初始化m3後新增資料 map[name:axing]
當訪問map不存在的key時會返回zero value
func
main()
// fmt.
println
(m2[
"11"])
//會輸出乙個空串
//a, err := m2["11"] 因為沒有這個key所以會返回乙個false給err
err) //zero value false
}
如何判斷zero value (到底有沒有這個key)
package main
import
"fmt"
func
main()
fmt.
println
("**********====")//
if value, o := m2[
"a"]
; o
else
}
go語言內建基礎型別
1 數值型 number 三種 整數型 浮點型和虛數型 有符號整數表示整數範圍 2n 1 2n 1 1 無符號整數表示整數範圍 0 2n 1 go內建整型有 uint8,uint16,uint32,uint64,int8,int16,int32,int64。其中u開頭的型別就是無符號整型 無符號型別...
go語言 內建容器之map 九
var mmap map string string map string string var k,v string for k,v range mmap var value mmap a fmt.printf value s value v,ok mmap a fmt.printf v s,ok...
GO語言 對map型別的理解
package main import fmt type personinfo struct func main persondb 1 personinfo person,persondb 12345 fmt.println persondb,person 變數宣告 mymap 是宣告的map變數名...