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

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

リリース: 2020-06-17 17:27:54
転載
2911 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート