欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言range關鍵字循環(huán)時的坑

 更新時間:2019年03月07日 16:58:52   作者:benben_2015  
今天小編就為大家分享一篇關于Go語言range關鍵字循環(huán)時的坑,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

關鍵字range可用于循環(huán),類似迭代器操作,它可以遍歷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”變?yōu)椤?”,使用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],但執(zhí)行后卻是[1 2 3 4]。也就是說在range中對切片進行操作,并沒有影響到切片(原切片)。

出現(xiàn)上述問題的原因是因為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)
}

總結

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

相關文章

  • vscode配置go開發(fā)環(huán)境的實戰(zhàn)過程

    vscode配置go開發(fā)環(huán)境的實戰(zhàn)過程

    vscode配置go的開發(fā)環(huán)境很簡單,下面這篇文章主要給大家介紹了關于vscode配置go開發(fā)環(huán)境的實戰(zhàn)過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • go build和go install的區(qū)別介紹

    go build和go install的區(qū)別介紹

    這篇文章主要介紹了go build和go install的區(qū)別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go如何實現(xiàn)json字符串與各類struct相互轉換

    Go如何實現(xiàn)json字符串與各類struct相互轉換

    這篇文章主要介紹了Go如何實現(xiàn)json字符串與各類struct相互轉換,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • golang grpc配置使用實戰(zhàn)

    golang grpc配置使用實戰(zhàn)

    本文主要介紹了golang grpc配置使用實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Golang中禁止拷貝的實現(xiàn)代碼

    Golang中禁止拷貝的實現(xiàn)代碼

    這篇文章主要給大家介紹了關于Golang中實現(xiàn)禁止拷貝的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)

    Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對)

    這篇文章主要介紹了Go語言遍歷map實現(xiàn)(訪問map中的每一個鍵值對),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Golang學習筆記(四):array、slice、map

    Golang學習筆記(四):array、slice、map

    這篇文章主要介紹了Golang學習筆記(四):array、slice、map,本文分別講解了這3個類型的聲明&賦值、元素訪問、其它操作,需要的朋友可以參考下
    2015-05-05
  • 關于Golang標準庫flag的全面講解

    關于Golang標準庫flag的全面講解

    這篇文章主要介紹了關于Golang標準庫flag的全面講解,這個庫的代碼量只有1000行左右,卻提供了非常完善的命令行參數(shù)解析功能,更多相關內容需要的朋友可以參考一下
    2022-09-09
  • 詳解Golang中Context的三個常見應用場景

    詳解Golang中Context的三個常見應用場景

    Golang?context主要用于定義超時取消,取消后續(xù)操作,在不同操作中傳遞值。本文通過簡單易懂的示例進行說明,感興趣的可以了解一下
    2022-12-12
  • 用Go+Redis實現(xiàn)分布式鎖的示例代碼

    用Go+Redis實現(xiàn)分布式鎖的示例代碼

    在分布式的業(yè)務中 , 如果有的共享資源需要安全的被訪問和處理 , 那就需要分布式鎖,本文主要介紹了用Go+Redis實現(xiàn)分布式鎖的示例代碼,感興趣的可以了解一下
    2021-12-12

最新評論