Go基礎(複雜型別) 對映

2021-09-20 08:47:05 字數 1859 閱讀 4692

對映將鍵對映到值。

對映的零值為 nil 。nil 對映既沒有鍵,也不能新增鍵。

make 函式會返回給定型別的對映,並將其初始化備用。

package main

import

"fmt"

//定義乙個構造

type vertex5 struct

//定義乙個map,這個map的鍵是string型別的

var m map[string]vertex5

func main()

fmt.println(m["bell gates"])

}

輸出結果:

對映的文法與結構體相似,不過必須有鍵名。

package main

import

"fmt"

type vertex6 struct

var m6 = map[string]vertex6,

"google": vertex6,

}func main()

輸出結果:

map[bell labs: google:]
若頂級型別只是乙個型別名,你可以在文法的元素中省略它。

看乙個例子:

package main

import

"fmt"

type vertex7 struct

var m3 = map[string]vertex7,

"google": ,

}func main()

輸出結果:

map[google: bell labs:]
在對映 m 中插入或修改元素:

m[key] =elem
獲取元素:

elem =m[key]
刪除元素:

delete(m, key)
通過雙賦值檢測某個鍵是否存在:

elem, ok =m[key]
若 key 在 m 中,ok 為 true;否則,ok 為 false。

若 key 不在對映中,那麼 elem 是該對映元素型別的零值。

同樣的,當從 對映 中讀取某個不存在的鍵時,結果是 對映 的元素型別的零值。

注 :若 elem 或 ok 還未宣告,你可以使用短變數宣告:

elem, ok := m[key]

下面來看乙個例子:

package main

import

"fmt"

func main()

輸出結果:

the value: 42

the value: 48

the value: 48 present? true

the value: 0

package main

import (

"golang.org/x/tour/wc"

)func wordcount(s string) map[string]int

}func main()

輸出結果:

fail

f("i am learning go!") =

map[string]int

want:

map[string]int

好啦。go的對映之旅就到這裡啦。

Go基礎(複雜型別) 結構體

乙個結構體 struct 就是乙個欄位的集合。而 type 的含義跟其字面意思相符。下面來寫乙個簡單的例子 package main import fmt 乙個結構體就是乙個欄位的集合 type vertex struct func main 輸出結果 結構體欄位使用點號來訪問。package ma...

Go基礎(複雜型別) 函式值

函式也是值。它們可以像其它值一樣傳遞。函式值可以用作函式的引數或返回值。一 下面來看乙個函式值的例子 package main import fmt math func compute fn func float64,float64 float64 float64 func main fmt.pri...

基礎型別和複雜型別

基礎型別 number string boolean undefined null 引用型別 object array function 基本型別和複雜型別區別 解決基礎型別和複雜型別的賦值區別的方法 var arr a b c 希望brr和arr一樣,但是不要共用乙個位址 1.遍歷乙個乙個放進去 ...