Go中字符串是一個字節切片。數據結構
經過for循環字符串能夠獲得每一個字節。函數
Go中字符串是不可變的。一旦字符串被建立,它將沒法修改。code
咱們想修改一個字符串,須要將其轉化爲一個rune切片,以後在轉化成一個字符串。字符串
func mutate(s []rune) string{ s[0] = ‘a’ return string(s) } func main(){ h := 「hello」 print mutate([]rune(h)) }
經過make函數傳入鍵值,能夠建立map。string
make(map[type of key] type of value)
personSalary := make(map[string]int)
上面map的鍵是string類型,值是int類型。for循環
func main(){ personSalary := make(map[string] int) personSalary[「steve」] = 12000 personSalary[「mike」] = 15000 }
也能夠在聲明時進行初始化:變量
personSalary := map[string] int{ 「steve」 : 12000, 「jamie」 : 25000, }
獲取map中不存在key的值不會報錯,而會返回對應類型的零值。循環
value, ok := map[key]
若是ok爲true表示key存在,反之不存在。遍歷
for key, value := range personSalary{ print key, value }
使用for range遍歷map時,不能保證每次執行獲取元素的順序相同。map
使用delete(map, key),刪除map元素。 使用len(map),獲取map長度。
當map被賦值一個新變量時,他們指向同一個內部數據結構,改變一個變量,會影響另外一個變量。
map之間不能使用 == 操做符,== 只用來檢查map是否爲nil。 判斷兩個map是否相等方法,是遍歷比較兩個map中每一個元素。