Go 容器遍歷的實現示例

前文回顧

前面的文章主要介紹瞭 Go 語言中提供瞭 list 列表和 Map 映射關系容器,這兩種容器都是我們日常經常使用到的。介紹瞭好多種的 Go 語言提供的基礎容器,免不瞭要查詢容器中的數據,那麼是如何實現遍歷的呢?本文將會介紹幾種常用容易的遍歷及其使用。

容器遍歷

Go 語言中 range 關鍵字用於 for 循環中迭代數組(array)、切片(slice)、通道(channel)或集合(map)的元素。在數組和切片中它返回元素的索引和索引對應的值,在集合中返回 key-value 對。
遍歷對於很多 Golang 的內置容器來說,形式都是基本一致的,主要通過 for-range 語法,我們將通過以下的例子分別展示數組、切片和字典的遍歷過程,代碼如下所示:

package main

import "fmt"

func main()  {

 // 數組的遍歷
 nums := [...]int{1,2,3,4,5,6,7,8}
 for k, v:= range nums{
  // k 為下標,v 為對應的值
  fmt.Println(k, v, " ")
 }

 fmt.Println()

 // 切片的遍歷
 slis := []int{1,2,3,4,5,6,7,8}
 for k, v:= range slis{
  // k 為下標,v 為對應的值
  fmt.Println(k, v, " ")
 }

 fmt.Println()

 // 字典的遍歷
 tmpMap := map[int]string{
  0 : "小明",
  1 : "小紅",
  2 : "小張",
 }

 for k, v:= range tmpMap{
  // k 為鍵值,v 為對應值
  fmt.Println(k, v, " ")
 }
}

通過 for-range 可以對數組、切片和字典以同樣的方式進行遍歷。如果僅需要遍歷值,可以將不需要的鍵改為匿名變量形式,如下所示:

for _, v := range nums {

僅遍歷鍵時,可以直接省略掉無用值的賦值。在 for-range 遍歷的過程中,因為鍵和值都是通過拷貝的方式進行賦值,對它們進行修改並不會影響到容器內成員的變化,這點需要我們在實際開發中多加註意。

小結

本文主要介紹瞭容器的遍歷。go 語言中主要通過 for-range 語法,文中實際的案例分別展示瞭數組、切片和字典的遍歷過程。
在數組上使用 range 將傳入 index 和值兩個變量。當我們不需要使用該元素的序號,可以使用空白符”_”省略瞭。不過有些場景可能確實需要知道它的索引。 

到此這篇關於Go 容器遍歷的實現示例的文章就介紹到這瞭,更多相關Go 容器遍歷內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet! 

推薦閱讀: