最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

優(yōu)點知識go運維開發(fā)訓練營第2期

2023-08-25 17:14 作者:IT前端知識  | 我要投稿


Go 語言范圍(Range)

Go 語言中 range 關鍵字用于 for 循環(huán)中迭代數(shù)組(array)、切片(slice)、通道(channel)或集合(map)的元素。在數(shù)組和切片中它返回元素的索引和索引對應的值,在集合中返回 key-value 對。

for 循環(huán)的 range 格式可以對 slice、map、數(shù)組、字符串等進行迭代循環(huán)。格式如下:

for key, value := range oldMap { ? ?newMap[key] = value}

以上代碼中的 key 和 value 是可以省略。

如果只想讀取 key,格式如下:

for key := range oldMap

或者這樣:

for key, _ := range oldMap

如果只想讀取 value,格式如下:

for _, value := range oldMap

實例

遍歷簡單的數(shù)組,2**%d?的結果為 2 對應的次方數(shù):

實例

package?main

import?"fmt"

var?pow?=?[]int{1,?2,?4,?8,?16,?32,?64,?128}

func?main()?{
? ?for?i,?v?:=?range?pow?{
? ? ? fmt.Printf("2**%d = %d\n",?i,?v)
? ?}
}

以上實例運行輸出結果為:

2**0 = 12**1 = 22**2 = 42**3 = 82**4 = 162**5 = 322**6 = 642**7 = 128

for 循環(huán)的 range 格式可以省略 key 和 value,如下實例:

實例

package?main
import?"fmt"

func?main()?{
? ? map1?:=?make(map[int]float32)
? ? map1[1]?=?1.0
? ? map1[2]?=?2.0
? ? map1[3]?=?3.0
? ? map1[4]?=?4.0
? ?
? ??// 讀取 key 和 value
? ??for?key,?value?:=?range?map1?{
? ? ? fmt.Printf("key is: %d - value is: %f\n",?key,?value)
? ??}

? ??// 讀取 key
? ??for?key?:=?range?map1?{
? ? ? fmt.Printf("key is: %d\n",?key)
? ??}

? ??// 讀取 value
? ??for?_,?value?:=?range?map1?{
? ? ? fmt.Printf("value is: %f\n",?value)
? ??}
}

以上實例運行輸出結果為:

key is: 4 - value is: 4.000000key is: 1 - value is: 1.000000key is: 2 - value is: 2.000000key is: 3 - value is: 3.000000key is: 1key is: 2key is: 3key is: 4value is: 1.000000value is: 2.000000value is: 3.000000value is: 4.000000

range 遍歷其他數(shù)據(jù)結構:

實例

package?main
import?"fmt"
func?main()?{
? ??//這是我們使用 range 去求一個 slice 的和。使用數(shù)組跟這個很類似
? ? nums?:=?[]int{2,?3,?4}
? ? sum?:=?0
? ??for?_,?num?:=?range?nums?{
? ? ? ? sum?+=?num
? ??}
? ? fmt.Println("sum:",?sum)
? ??//在數(shù)組上使用 range 將傳入索引和值兩個變量。上面那個例子我們不需要使用該元素的序號,所以我們使用空白符"_"省略了。有時侯我們確實需要知道它的索引。
? ??for?i,?num?:=?range?nums?{
? ? ? ??if?num?==?3?{
? ? ? ? ? ? fmt.Println("index:",?i)
? ? ? ??}
? ??}
? ??//range 也可以用在 map 的鍵值對上。
? ? kvs?:=?map[string]string{"a":?"apple",?"b":?"banana"}
? ??for?k,?v?:=?range?kvs?{
? ? ? ? fmt.Printf("%s -> %s\n",?k,?v)
? ??}

? ??//range也可以用來枚舉 Unicode 字符串。第一個參數(shù)是字符的索引,第二個是字符(Unicode的值)本身。
? ??for?i,?c?:=?range?"go"?{
? ? ? ? fmt.Println(i,?c)
? ??}
}

以上實例運行輸出結果為:

sum: 9index: 1a -> apple b -> banana0 1031 111


優(yōu)點知識go運維開發(fā)訓練營第2期的評論 (共 條)

分享到微博請遵守國家法律
宁远县| 枞阳县| 东阿县| 工布江达县| 湖南省| 阜宁县| 南皮县| 泸定县| 榕江县| 从化市| 竹山县| 大竹县| 仪征市| 周宁县| 云霄县| 日土县| 顺平县| 河东区| 沭阳县| 柏乡县| 东至县| 汪清县| 遵义县| 文安县| 黄平县| 鄂尔多斯市| 乌兰察布市| 内丘县| 大兴区| 隆尧县| 遵义市| 许昌县| 大洼县| 襄汾县| 香格里拉县| 晋宁县| 云龙县| 陆丰市| 仙居县| 乳山市| 锦州市|