Aller au contenu

Pointeurs

Un pointeur contient l’adresse mémoire d’une valeur. Utilisez *T pour un pointeur vers T, et & pour obtenir l’adresse. Go n’a pas d’arithmétique des pointeurs (sauf via unsafe).

Passage par valeur vs par référence.

package main
import "fmt"
func zeroVal(x int) {
x = 0
}
func zeroPtr(x *int) {
*x = 0
}
func main() {
a := 42
zeroVal(a)
fmt.Println(a) // toujours 42
zeroPtr(&a)
fmt.Println(a) // maintenant 0
// pointeur nil
var p *int
if p == nil {
fmt.Println("p est nil")
}
}
Fenêtre de terminal
42
0
p est nil