婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Go語言range關鍵字循環時的坑

Go語言range關鍵字循環時的坑

熱門標簽:江西轉化率高的羿智云外呼系統 中國地圖標注省會高清 廣州呼叫中心外呼系統 西部云谷一期地圖標注 地圖標注的汽車標 學海導航地圖標注 南通如皋申請開通400電話 浙江高速公路地圖標注 高德地圖標注口訣

關鍵字range可用于循環,類似迭代器操作,它可以遍歷slice,array,string,mapchannel,然后返回索引或值。可以使用”_”來忽略不想要的返回值。可以方便的讀取上面類型中的內容,例如:

package main
import "fmt"
func main() {
  str1 := []string{"1", "2", "3", "4"}
  for key, value := range str1 {
    fmt.Println(key, ":", value)
  }
}

但是如果想要改變這些類型的值,用range就可能達不到你期望的效果。例如,將上面str1中的值”2”和”4”變為”6”,使用range來進行遍歷修改。

package main
import "fmt"
func main() {
  str1 := []string{"1", "2", "3", "4"}
  for _, value := range str1 {
    if value == "2" || value == "4" {
      value = "6"
    }
  }
  fmt.Println(str1)
}

你可能覺得結果會是[1 6 3 6],但執行后卻是[1 2 3 4]。也就是說在range中對切片進行操作,并沒有影響到切片(原切片)。

出現上述問題的原因是因為for range遍歷的內容是對原內容的一個拷貝,所以不能用來修改原切片中內容。

修改方法:

使用for語句

package main
import "fmt"
func main() {
  str1 := []string{"1", "2", "3", "4"}
  for i := 0; i  len(str1); i++ {
    if str1[i] == "2" || str1[i] == "4" {
      str1[i] = "6"
    }
  }
  fmt.Println(str1)
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • 手把手帶你走進Go語言之循環語句
  • Go語言for range(按照鍵值循環)遍歷操作
  • Go語言流程控制之goto語句與無限循環
  • 深入解析Go語言中for循環的寫法
  • Go語言模擬while語句實現無限循環的方法
  • Go語言之fo循環與條件判斷

標簽:吐魯番 保定 貴州 許昌 曲靖 常州 東營 德宏

巨人網絡通訊聲明:本文標題《Go語言range關鍵字循環時的坑》,本文關鍵詞  語言,range,關鍵字,循環,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言range關鍵字循環時的坑》相關的同類信息!
  • 本頁收集關于Go語言range關鍵字循環時的坑的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 庆云县| 宁国市| 宜都市| 枣庄市| 托里县| 长沙市| 乐至县| 连云港市| 巴东县| 伊川县| 牡丹江市| 浦北县| 临沂市| 通城县| 五寨县| 鄂托克旗| 岗巴县| 靖边县| 乌苏市| 呈贡县| 万盛区| 灌阳县| 青神县| 扬中市| 杭锦后旗| 大兴区| 凌源市| 芦山县| 卓尼县| 开平市| 峨眉山市| 冕宁县| 汉源县| 新源县| 西峡县| 二手房| 浦县| 宁津县| 明水县| 舞阳县| 林西县|