Go 容器遍歷的實現(xiàn)示例
前文回顧
前面的文章主要介紹了 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ù)組、切片和字典以同樣的方式進(jìn)行遍歷。如果僅需要遍歷值,可以將不需要的鍵改為匿名變量形式,如下所示:
for _, v := range nums {
僅遍歷鍵時,可以直接省略掉無用值的賦值。在 for-range 遍歷的過程中,因為鍵和值都是通過拷貝的方式進(jìn)行賦值,對它們進(jìn)行修改并不會影響到容器內(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go語言實現(xiàn)將重要數(shù)據(jù)寫入圖片中
本文給大家分享的是go語言實現(xiàn)將數(shù)據(jù)的二進(jìn)制形式寫入圖像紅色通道數(shù)據(jù)二進(jìn)制的低位,從而實現(xiàn)將重要數(shù)據(jù)隱藏,有需要的小伙伴參考下吧。2015-03-03gorm整合進(jìn)go-zero的實現(xiàn)方法
go-zero提供的代碼生成器里面,沒有提供orm框架操作,但是提供了遍歷的緩存操作,所以可以利用gorm當(dāng)作一個sql語句的生成器,把生成后的sql語句放到go-zero生成的模板中去執(zhí)行,對gorm整合進(jìn)go-zero的實現(xiàn)方法感興趣的朋友一起看看吧2022-03-03golang 實現(xiàn)時間戳和時間的轉(zhuǎn)化
這篇文章主要介紹了golang 實現(xiàn)時間戳和時間的轉(zhuǎn)化操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-05-05