Метод list.List.Remove
Метод Remove удаляет элемент из двусвязного списка.
В качестве параметра метод принимает указатель на элемент
типа *list.Element, который нужно удалить.
Метод возвращает значение удаленного элемента в виде
интерфейса any. Если переданный элемент не принадлежит
списку или равен nil, метод не выполняет никаких
действий и возвращает nil.
Синтаксис
func (l *List) Remove(e *Element) any
Пример
Давайте создадим список из пяти элементов и удалим из него
элемент со значением 'c':
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
l.PushBack("a")
l.PushBack("b")
l.PushBack("c")
l.PushBack("d")
l.PushBack("e")
var elem *list.Element
for e := l.Front(); e != nil; e = e.Next() {
if e.Value == "c" {
elem = e
break
}
}
res := l.Remove(elem)
fmt.Println(res)
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"c"
"a"
"b"
"d"
"e"
Пример
Давайте попробуем удалить элемент, который не принадлежит списку.
Метод вернет nil и не изменит список:
package main
import (
"container/list"
"fmt"
)
func main() {
l1 := list.New()
l1.PushBack("a")
l1.PushBack("b")
l2 := list.New()
l2.PushBack("x")
l2.PushBack("y")
elem := l2.Front()
res := l1.Remove(elem)
fmt.Println(res)
fmt.Println("Length of l1:", l1.Len())
fmt.Println("Length of l2:", l2.Len())
}
Результат выполнения кода:
<nil>
"Length of l1: 2"
"Length of l2: 2"
Пример
Метод Remove возвращает значение удаленного элемента,
поэтому его удобно использовать для получения данных при удалении:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
l.PushBack(10)
l.PushBack(20)
l.PushBack(30)
elem := l.Back()
res := l.Remove(elem)
fmt.Printf("Removed value: %d\n", res)
fmt.Println("Remaining elements:")
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"Removed value: 30"
"Remaining elements:"
"10"
"20"
Смотрите также
-
метод
list.List.InsertAfter,
который вставляет новый элемент после указанного -
метод
list.List.InsertBefore,
который вставляет новый элемент перед указанным -
метод
list.List.PushBack,
который добавляет элемент в конец списка -
метод
list.List.PushFront,
который добавляет элемент в начало списка