English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En langage Go, il est permis de comparer deux pointeurs. Les valeurs des deux pointeurs ne sont égales que s'ils pointent vers la même valeur en mémoire ou s'ils sont nil. Vous pouvez comparer les pointeurs à l'aide des opérateurs == et != fournis par le langage Go :
1. == opérateur :Si les deux pointeurs pointent vers la même variable, cet opérateur renvoie true. Ou si les deux pointeurs pointent vers des variables différentes, il renvoie false.
Syntaxe :
pointer_1 == pointer_2
package main import "fmt" func main() { val1 := 2345 val2 := 567 //Création et initialisation des pointeurs var p1 *int p1 = &val1 p2 := &val2 p3 := &val1 //Utilisation de l'opérateur == pour comparer les pointeurs res1 := &p1 == &p2 fmt.Println("p1Est-ce que le pointeur est égal à p2Pointeur : ", res1) res2 := p1 == p2 fmt.Println("p1Est-ce que le pointeur est égal à p2Pointeur : ", res2) res3 := p1 == p3 fmt.Println("p1Est-ce que le pointeur est égal à p3Pointeur : ", res3) res4 := p2 == p3 fmt.Println("p2Est-ce que le pointeur est égal à p3Pointeur : ", res4) res5 := &p3 == &p1 fmt.Println("p3Est-ce que le pointeur est égal à p1Pointeur : ", res5) }
Sortie :
p1Est-ce que le pointeur est égal à p2Pointeur : false p1Est-ce que le pointeur est égal à p2Pointeur : false p1Est-ce que le pointeur est égal à p3Pointeur : true p2Est-ce que le pointeur est égal à p3Pointeur : false p3Est-ce que le pointeur est égal à p1Pointeur : false
2.!= opérateur :Si les deux pointeurs pointent vers la même variable, cet opérateur renvoie false. Ou si les deux pointeurs pointent vers des variables différentes, il renvoie true.
Syntaxe :
pointer_1 != pointer_2
package main import "fmt" func main() { val1 := 2345 val2 := 567 //Création et initialisation des pointeurs var p1 *int p1 = &val1 p2 := &val2 p3 := &val1 // Utilisation de l'opérateur != pour comparer les pointeurs res1 := &p1 != &p2 fmt.Println("p1Le pointeur n'est pas égal à p2Est-ce un pointeur ? ", res1) res2 := p1 != p2 fmt.Println("p1Le pointeur n'est pas égal à p2Est-ce un pointeur ? ", res2) res3 := p1 != p3 fmt.Println("p1Le pointeur n'est pas égal à p3Est-ce un pointeur ? ", res3) res4 := p2 != p3 fmt.Println("p2Le pointeur n'est pas égal à p3Est-ce un pointeur ? ", res4) res5 := &p3 != &p1 fmt.Println("p3Le pointeur n'est pas égal à p1Est-ce un pointeur ? ", res5) }
Sortie :
p1Le pointeur n'est pas égal à p2Pointeur ? true p1Le pointeur n'est pas égal à p2Pointeur ? true p1Le pointeur n'est pas égal à p3Est-ce un pointeur ? false p2Le pointeur n'est pas égal à p3Pointeur ? true p3Le pointeur n'est pas égal à p1Pointeur ? true