ホームページ >バックエンド開発 >Golang >Go 言語での値の受け渡しの概要

Go 言語での値の受け渡しの概要

尚
転載
2020-06-17 17:27:542909ブラウズ

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 関数の変数リストのアドレスを指しているため、リストの値が変化します。

Go 言語での値の受け渡しの概要

さらに関連する知識については、go 言語チュートリアル

に注目してください。

以上がGo 言語での値の受け渡しの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。