English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Golang

Instructions de contrôle Golang

Fonctions & méthodes Golang

Structures Golang

Coupes & tableaux Golang

Chaînes (String) Golang

Pointeurs Golang

Interfaces Golang

Concurrence Golang

Erreurs Golang

Autres éléments Golang

Comparaison de pointeur du langage Go

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