Рубрики

Сравнение указателей на Голанге

Указатели на языке программирования Go или Golang — это переменная, которая используется для хранения адреса памяти другой переменной. Указатели на Голанге также называются специальными переменными. Переменные используются для хранения некоторых данных по определенному адресу памяти в системе. Адрес памяти всегда находится в шестнадцатеричном формате (начиная с 0x, например, 0xFFAAF и т. Д.).
В языке Go вы можете сравнивать два указателя друг с другом. Значения двух указателей равны только тогда, когда они указывают на одно и то же значение в памяти или если они равны нулю. Вы можете выполнить сравнение по указателям с помощью операторов == и ! =, Предоставляемых языком Go:

1. == оператор: этот оператор возвращает true, если оба указателя указывают на одну и ту же переменную. Или вернуть false, если оба указателя указывают на разные переменные.

Синтаксис:

pointer_1 == pointer_2

Пример:

// Перейти к программе, чтобы проиллюстрировать
// концепция сравнения двух указателей
package main

  

import "fmt"

  
func main() {

  

    val1 := 2345

    val2 := 567

  

    // Создание и инициализация указателей

    var p1 *int

    p1 = &val1

    p2 := &val2

    p3 := &val1

  

    // Сравнение указателей

    // друг с другом

    // Использование оператора ==

    res1 := &p1 == &p2

    fmt.Println("Is p1 pointer is equal to p2 pointer: ", res1)

  

    res2 := p1 == p2

    fmt.Println("Is p1 pointer is equal to p2 pointer: ", res2)

  

    res3 := p1 == p3

    fmt.Println("Is p1 pointer is equal to p3 pointer: ", res3)

  

    res4 := p2 == p3

    fmt.Println("Is p2 pointer is equal to p3 pointer: ", res4)

  

    res5 := &p3 == &p1

    fmt.Println("Is p3 pointer is equal to p1 pointer: ", res5)

}

Выход:

Is p1 pointer is equal to p2 pointer:  false
Is p1 pointer is equal to p2 pointer:  false
Is p1 pointer is equal to p3 pointer:  true
Is p2 pointer is equal to p3 pointer:  false
Is p3 pointer is equal to p1 pointer:  false

2.! = Оператор: этот оператор возвращает false, если оба указателя указывают на одну и ту же переменную. Или верните true, если оба указателя указывают на разные переменные.

Синтаксис:

pointer_1 != pointer_2

Пример:

// Перейти к программе, чтобы проиллюстрировать
// концепция сравнения двух указателей
package main

  

import "fmt"

  
func main() {

  

    val1 := 2345

    val2 := 567

  

    // Создание и инициализация указателей

    var p1 *int

    p1 = &val1

    p2 := &val2

    p3 := &val1

  

    // Сравнение указателей

    // друг с другом

    // Использование оператора! =

    res1 := &p1 != &p2

    fmt.Println("Is p1 pointer not equal to p2 pointer: ", res1)

  

    res2 := p1 != p2

    fmt.Println("Is p1 pointer not equal to p2 pointer: ", res2)

  

    res3 := p1 != p3

    fmt.Println("Is p1 pointer not equal to p3 pointer: ", res3)

  

    res4 := p2 != p3

    fmt.Println("Is p2 pointer not equal to p3 pointer: ", res4)

  

    res5 := &p3 != &p1

    fmt.Println("Is p3 pointer not equal to p1 pointer: ", res5)

}

Выход:

Is p1 pointer not equal to p2 pointer:  true
Is p1 pointer not equal to p2 pointer:  true
Is p1 pointer not equal to p3 pointer:  false
Is p2 pointer not equal to p3 pointer:  true
Is p3 pointer not equal to p1 pointer:  true

Рекомендуемые посты:

Сравнение указателей на Голанге

0.00 (0%) 0 votes