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

go語言值傳遞介紹

發布: 2020-06-17 17:27:54
轉載
2799 人瀏覽過

go語言值傳遞介紹

Go語言的參數只能是值傳遞

#值傳遞是一個拷貝的過程

Go:值傳遞

func bbb(list [4]int){
   for i,_ := range list{
      list[i] = 0
   }
}
func main(){
   list := [4]int{1,2,3,4}
   bbb(list)
   fmt.Println(list )   //[1 2 3 4]
}
登入後複製

Javascript: 引用傳遞

let list = [1,2,3,4]
function  bbb(list){
    list.forEach((item,index)=>{
        list[index] = 0
    })
}
bbb(list)
console.log(list)   //[0,0,0,0]
登入後複製

但是Go語言可以透過指標來實現引用傳遞的作用

func bbb(p2 *[4]int){    //接受一个[4]int的指针
   for i,_ := range p2{
      p2[i] = 0
   }
}
func main(){
   list := [4]int{1,2,3,4}
   p := &list
   bbb(p)     //传递指针
   fmt.Println(list )   //[0 0 0 0]
}
登入後複製

既然說go語言的參數傳遞只能是值傳遞,所以這裡其實是把指標位址拷貝了一份,而兩個位址都指向了main函數的變數list的位址,所以才讓list的值發生了改變

go語言值傳遞介紹

更多相關知識請關注go語言教學欄位

以上是go語言值傳遞介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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