Функция slices.Index

Функция slices.Index возвращает индекс первого вхождения элемента в слайсе. Первым параметром функция принимает слайс для поиска, вторым - искомое значение. Если элемент найден, функция возвращает его индекс (начиная с нуля). Если элемент не найден, возвращается -1. Функция поддерживает все сравнимые типы данных.

Синтаксис

goslices.Index(slice, value)

Пример

Давайте найдем индекс элемента "c" в слайсе строк:

gopackage main

import (
  "fmt"
  "slices"
)

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

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

go2

Пример

Давайте попробуем найти элемент, которого нет в слайсе:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice := []string{"a", "b", "c", "d", "e"}
  res := slices.Index(slice, "z")
  fmt.Println(res)
}

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

go-1

Пример

Функция работает и с числовыми слайсами. Найдем индекс числа 30 в слайсе целых чисел:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice := []int{10, 20, 30, 40, 50}
  res := slices.Index(slice, 30)
  fmt.Println(res)
}

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

go2

Пример

Если в слайсе есть несколько одинаковых элементов, функция возвращает индекс первого из них:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice := []string{"a", "b", "b", "c", "b"}
  res := slices.Index(slice, "b")
  fmt.Println(res)
}

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

go1

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

  • функцию slices.Contains,
    которая проверяет наличие элемента в слайсе
  • функцию slices.IndexFunc,
    которая находит индекс по условию
  • функцию slices.Equal,
    которая сравнивает два слайса
  • функцию slices.Compact,
    которая удаляет последовательные дубликаты из слайса