Функция clear

Функция clear удаляет все элементы из слайса, устанавливая их в нулевые значения для соответствующего типа. Важно: функция не изменяет длину и емкость слайса, а лишь обнуляет значения элементов. В качестве единственного параметра функция принимает слайс, который нужно очистить.

Синтаксис

goclear(s)

Пример

Давайте очистим слайс строк, состоящий из пяти элементов:

gopackage main

import "fmt"

func main() {
  s := []string{"a", "b", "c", "d", "e"}
  clear(s)
  fmt.Println(s)
}

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

go[   ]

Как видите, все элементы слайса стали пустыми строками, а длина и емкость остались прежними (5).

Пример

Теперь очистим слайс целых чисел:

gopackage main

import "fmt"

func main() {
  s := []int{1, 2, 3, 4, 5}
  clear(s)
  fmt.Println(s)
}

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

go[0 0 0 0 0]

Все элементы слайса стали нулями, так как нулевое значение для типа int — это 0.

Пример

Очистим слайс с произвольной структурой:

gopackage main

import "fmt"

type Person struct {
  Name string
  Age  int
}

func main() {
  s := []Person{{"Alice", 30}, {"Bob", 25}}
  clear(s)
  fmt.Println(s)
}

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

go[{ 0} { 0}]

Каждый элемент структуры обнулен: строки стали пустыми, числа — нулями.

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

  • функцию len,
    которая возвращает длину слайса
  • функцию cap,
    которая возвращает емкость слайса
  • функцию append,
    которая добавляет элементы в конец слайса
  • функцию copy,
    которая копирует элементы между слайсами