Рубрики

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

В языке Go карта — это мощная, оригинальная и универсальная структура данных. Golang Maps — это коллекция неупорядоченных пар ключ-значение. Он широко используется, поскольку он обеспечивает быстрый поиск и значения, которые можно получать, обновлять или удалять с помощью ключей.
В языке Go вы можете сравнивать две карты друг с другом, используя функцию DeepEqual (), предоставляемую пакетом отражать. Эта функция возвращает true, если обе карты удовлетворяют следующим условиям:

  • Обе карты ноль или не ноль.
  • Обе карты имеют одинаковую длину.
  • Обе карты являются одним и тем же объектом карты, или их соответствующие ключи отображаются на глубоко равные значения.

В противном случае эта функция возвращает false.

Синтаксис:

reflect.DeepEqual(a, b)

Здесь a и b являются картами , и эта функция проверяет, глубоко ли равны a и b, или возвращает результат логического типа.

Пример:

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

  
import (

    "fmt"

    "reflect"

)

  
func main() {

  

    map_1 := map[int]string{

  

        200: "Anita",

        201: "Neha",

        203: "Suman",

        204: "Robin",

        205: "Rohit",

    }

    map_2 := map[int]string{

  

        200: "Anita",

        201: "Neha",

        203: "Suman",

        204: "Robin",

        205: "Rohit",

        206: "Sumit",

    }

  

    map_3 := map[int]string{

  

        200: "Anita",

        201: "Neha",

        203: "Suman",

        204: "Robin",

        205: "Rohit",

    }

    map_4 := map[string]int{

  

        "Anita": 200,

        "Neha":  201,

        "Suman": 203,

        "Robin": 204,

        "Rohit": 205,

    }

  

    // Сравнение карт

    // Использование функции DeepEqual ()

    res1 := reflect.DeepEqual(map_1, map_2)

    res2 := reflect.DeepEqual(map_1, map_3)

    res3 := reflect.DeepEqual(map_1, map_4)

    res4 := reflect.DeepEqual(map_2, map_3)

    res5 := reflect.DeepEqual(map_3, map_4)

    res6 := reflect.DeepEqual(map_4, map_4)

    res7 := reflect.DeepEqual(map_2, map_4)

  

    // Отображение результата

    fmt.Println("Is Map 1 is equal to Map 2: ", res1)

    fmt.Println("Is Map 1 is equal to Map 3: ", res2)

    fmt.Println("Is Map 1 is equal to Map 4: ", res3)

    fmt.Println("Is Map 2 is equal to Map 3: ", res4)

    fmt.Println("Is Map 3 is equal to Map 3: ", res5)

    fmt.Println("Is Map 4 is equal to Map 4: ", res6)

    fmt.Println("Is Map 2 is equal to Map 4: ", res7)

  
}

Выход:

Is Map 1 is equal to Map 2:  false
Is Map 1 is equal to Map 3:  true
Is Map 1 is equal to Map 4:  false
Is Map 2 is equal to Map 3:  false
Is Map 3 is equal to Map 3:  false
Is Map 4 is equal to Map 4:  true
Is Map 2 is equal to Map 4:  false

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

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

0.00 (0%) 0 votes