Maison  >  Article  >  développement back-end  >  Introduction à la transmission de valeurs en langage Go

Introduction à la transmission de valeurs en langage Go

尚
avant
2020-06-17 17:27:542851parcourir

Introduction à la transmission de valeurs en langage Go

Les paramètres en langage Go ne peuvent être transmis que par valeur

Le passage de valeur est un processus de copie

Go : passage de valeur

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 : Passer par référence

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]

Mais le langage Go peut réaliser la fonction de référence passant par des pointeurs

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]
}

Puisqu'il est dit que le passage de paramètres dans le langage go ne peut que être passé par valeur, voici donc en fait une copie de l'adresse du pointeur, et les deux adresses pointent vers l'adresse de la liste de variables de la fonction principale, donc la valeur de la liste change

Introduction à la transmission de valeurs en langage Go

Pour plus de connaissances connexes, veuillez prêter attention à la colonne tutoriel de langue go

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer