佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Go 容器遍歷的實現(xiàn)示例

Go 容器遍歷的實現(xiàn)示例

熱門標(biāo)簽:AI電銷 網(wǎng)站排名優(yōu)化 地方門戶網(wǎng)站 百度競價排名 鐵路電話系統(tǒng) 呼叫中心市場需求 服務(wù)外包 Linux服務(wù)器

前文回顧

前面的文章主要介紹了 Go 語言中提供了 list 列表和 Map 映射關(guān)系容器,這兩種容器都是我們?nèi)粘=?jīng)常使用到的。介紹了好多種的 Go 語言提供的基礎(chǔ)容器,免不了要查詢?nèi)萜髦械臄?shù)據(jù),那么是如何實現(xiàn)遍歷的呢?本文將會介紹幾種常用容易的遍歷及其使用。

容器遍歷

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

package main

import "fmt"

func main()  {

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

 fmt.Println()

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

 fmt.Println()

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

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

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

for _, v := range nums {

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

小結(jié)

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

到此這篇關(guān)于Go 容器遍歷的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Go 容器遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:
  • Django繼承自帶user表并重寫的例子
  • Go語言中nil判斷引起的問題詳析
  • 分析Go語言中CSP并發(fā)模型與Goroutine的基本使用
  • Go遍歷struct,map,slice的實現(xiàn)
  • Golang的繼承模擬實例

標(biāo)簽:衡水 銅川 湘潭 崇左 湖南 仙桃 黃山 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go 容器遍歷的實現(xiàn)示例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    普陀区| 开鲁县| 宁乡县| 瑞丽市| 土默特左旗| 潢川县| 阿城市| 扶风县| 喜德县| 新巴尔虎左旗| 商洛市| 绿春县| 伊金霍洛旗| 乌鲁木齐市| 九龙县| 搜索| 明水县| 平果县| 宁河县| 宿州市| 望城县| 枣庄市| 金华市| 佳木斯市| 抚远县| 新河县| 湘西| 普格县| 莱芜市| 门源| 娄底市| 湖口县| 达拉特旗| 鹿泉市| 凤山县| 乌兰察布市| 沧州市| 砀山县| 东平县| 大荔县| 同心县|