首頁 > 後端開發 > Golang > 主體

golang range用法是什麼

PHPz
發布: 2023-04-14 09:26:54
原創
1383 人瀏覽過

作為一門高效簡潔的程式語言,Golang(又稱Go)在不斷贏得越來越多的支持者和開發者。其豐富的函式庫和語法簡潔的特性使得Golang的使用非常方便和愉悅。在本文中,我們將會詳細介紹Golang中的range用法,以便更好地利用Golang進行程式設計!

什麼是range?

range是Golang中的內建函數,它能夠直接取出集合中的每個元素(陣列、切片、映射等),使用起來非常方便。在實際程式設計過程中,我們常會用到range函數來遍歷資料集合進行計算、列印、過濾等操作。

使用range的基本語法

range的基本語法如下:

for index, 值 := range collection {

// 针对value和index进行操作
登入後複製

}

其中index表示遍歷到的目前元素索引,value表示遍歷到的目前元素。

舉例來說,我們可以利用range對一個整數陣列進行遍歷:

package main

import "fmt"

func main() {

nums := []int{2, 3, 4}
sum := 0
for _, num := range nums {
    sum += num
}
fmt.Println("sum: ", sum)
登入後複製

}

結果輸出:sum: 9

在上述程式碼中,我們依序遍歷了陣列nums中的每個元素,並且根據=進行了累加,最終計算出了元素總和。

在range中使用索引

在range中,我們可以使用下標(索引)進行遍歷集合元素的同時,輸出元素下標和值:

package main

import "fmt"

func main() {

nums := []int{2, 3, 4}
for i, num := range nums {
    fmt.Printf("index: %d, value: %d\n", i, num)
}
登入後複製

}

當執行程式的時候,就會得到如下的輸出:

index: 0, 值: 2
index: 1, 值: 3
index: 2, 值: 4

在range中忽略索引

如果我們在range中不需要使用索引,可以將其忽略掉,使用“_”代替即可。

package main

import "fmt"

func main() {

nums := []int{2, 3, 4}
for _, num := range nums {
    fmt.Println("value: ", num)
}
登入後複製

}

輸出結果:

value:  2
value:  3
value:  4

在range中使用map

##除了可以在range中處理陣列和切片之外,我們還可以處理映射(Map),具體實作如下:

package main

import "fmt"

func main() {

kvs := map[string]string{"a": "apple", "b": "banana"}
for k, v := range kvs {
    fmt.Printf("%s -> %s\n", k, v)
}
登入後複製
}

輸出結果:

a -> apple

b -> banana

可以看出,在range中我們不僅可以處理數組、切片,還能夠方便地遍歷Map。

在range中使用channel

除了陣列、切片和映射之外,在range中我們還能夠遍歷通道(Channel),範例程式碼如下:

package main

import "fmt"

func main() {

c := make(chan int, 2)
c <- 1
c <- 2
close(c)
for v := range c {
    fmt.Println(v)
}
登入後複製
}

#輸出結果:

1

2

在上述範例程式碼中,我們定義了一個容量為2的通道c,並將兩個值1和2放入通道中,最後透過close()函數關閉通道。在range中使用通道時,會在通道關閉時自動退出循環。

總結

在Golang中,range是一種非常方便的用於遍歷各種資料結構的方式。透過range函數,我們可以輕鬆地遍歷各種資料類型,獲得所需的資料。無論是處理陣列、切片、映射或通道,使用range都是一種高效、優雅的方式,能夠幫助我們實現程式的真正意義。

以上是golang range用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!