Функция slices.Replace

Функция slices.Replace заменяет элементы в слайсе начиная с индекса i до индекса j (не включая j) на новый набор элементов, переданный в качестве аргумента v.... Параметр v... принимает переменное количество элементов для вставки. Функция возвращает новый слайс с произведенными заменами, при этом исходный слайс остается неизменным.

Синтаксис

goslices.Replace(slice, i, j, v...)

Пример

Давайте заменим элементы с индексами с 1 по 3 (не включая 3) в слайсе []string{"a", "b", "c", "d", "e"} на новые элементы "x", "y":

gopackage main

import (
  "fmt"
  "slices"
)

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

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

go[a x y d e]

Пример

Давайте заменим элементы с индексами с 2 по 4 (не включая 4) в слайсе []int{1, 2, 3, 4, 5} на новые элементы 10, 20, 30:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice := []int{1, 2, 3, 4, 5}
  res := slices.Replace(slice, 2, 4, 10, 20, 30)
  fmt.Println(res)
}

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

go[1 2 10 20 30 5]

Пример

Давайте заменим элементы с индексами с 0 по 2 (не включая 2) в слайсе []string{"a", "b", "c", "d", "e"} на один новый элемент "z":

gopackage main

import (
  "fmt"
  "slices"
)

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

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

go[z c d e]

Пример

Давайте заменим элементы с индексами с 3 по 5 (не включая 5) в слайсе []int{1, 2, 3, 4, 5} на три новых элемента 100, 200, 300:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  slice := []int{1, 2, 3, 4, 5}
  res := slices.Replace(slice, 3, 5, 100, 200, 300)
  fmt.Println(res)
}

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

go[1 2 3 100 200 300]

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

  • функцию slices.Insert,
    которая вставляет элементы в слайс
  • функцию slices.Delete,
    которая удаляет элементы из слайса
  • функцию slices.Clone,
    которая создает копию слайса
  • функцию slices.Concat,
    которая объединяет несколько слайсов в один