Pointeurs du langage Go comme paramètres de fonction
Le langage Go permet de passer des pointeurs à des fonctions ; il vous suffit de définir le type du paramètre comme un pointeur dans la définition de la fonction.
L'exemple suivant montre comment passer des pointeurs à des fonctions et modifier les valeurs dans la fonction après l'appel de la fonction :
Exemple
package main
import "fmt"
func main() {
/* Définir les variables locales */
var a int = 100
var b int= 200
fmt.Printf("Valeur de a avant l'échange : %d\n\n", a )
fmt.Printf("Valeur de b avant l'échange : %d\n\n", b )
/* Appeler la fonction pour échanger les valeurs
* &a pointe vers l'adresse de la variable a
* &b pointe vers l'adresse de la variable b
*/
swap(&a, &b);
fmt.Printf("Valeur de a après l'échange : %d\n\n", a )
fmt.Printf("Valeur de b après l'échange : %d\n\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* Enregistrer la valeur à l'adresse de x */
*x = *y /* Affecter y à x */
*y = temp /* Affecter temp à y */
}
import "fmt"
func main() {
/* Définir les variables locales */
var a int = 100
var b int= 200
fmt.Printf("Valeur de a avant l'échange : %d\n\n", a )
fmt.Printf("Valeur de b avant l'échange : %d\n\n", b )
/* Appeler la fonction pour échanger les valeurs
* &a pointe vers l'adresse de la variable a
* &b pointe vers l'adresse de la variable b
*/
swap(&a, &b);
fmt.Printf("Valeur de a après l'échange : %d\n\n", a )
fmt.Printf("Valeur de b après l'échange : %d\n\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* Enregistrer la valeur à l'adresse de x */
*x = *y /* Affecter y à x */
*y = temp /* Affecter temp à y */
}
Les exemples ci-dessus peuvent produire le résultat suivant :
交换前 a 的值 : 100 交换前 b 的值 : 200 交换后 a 的值 : 200 交换后 b 的值 : 100autres extensions