Функция slices.Equal

Функция slices.Equal проверяет, равны ли два слайса, последовательно сравнивая их элементы. Она возвращает true, если слайсы имеют одинаковую длину и все соответствующие элементы равны, и false в противном случае. Первым параметром функция принимает первый слайс для сравнения, вторым - второй слайс для сравнения.

Синтаксис

goslices.Equal(slice1, slice2)

Пример ⁅n="sect"⁆

Давайте сравним два одинаковых слайса строк:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice1 := []string{"a", "b", "c", "d", "e"}
  slice2 := []string{"a", "b", "c", "d", "e"}
  res := slices.Equal(slice1, slice2)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример ⁅n="sect"⁆

Давайте сравним два слайса строк разной длины:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice1 := []string{"a", "b", "c", "d", "e"}
  slice2 := []string{"a", "b", "c"}
  res := slices.Equal(slice1, slice2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример ⁅n="sect"⁆

Давайте сравним два слайса одинаковой длины, но с разными элементами:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice1 := []int{1, 2, 3, 4, 5}
  slice2 := []int{1, 2, 3, 4, 6}
  res := slices.Equal(slice1, slice2)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример ⁅n="sect"⁆

Давайте сравним два пустых слайса:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice1 := []string{}
  slice2 := []string{}
  res := slices.Equal(slice1, slice2)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Смотрите также

  • функцию slices.EqualFunc,
    которая сравнивает слайсы с использованием пользовательской функции для проверки равенства элементов
  • функцию slices.Compare,
    которая сравнивает слайсы и возвращает целочисленное значение, показывающее отношение между ними
  • функцию slices.Contains,
    которая проверяет наличие элемента в слайсе
  • функцию slices.Index,
    которая возвращает индекс первого вхождения элемента в слайсе