Тип list.Element
Тип list.Element представляет собой элемент двусвязного списка.
Он содержит поле Value, которое хранит значение элемента (тип interface{}),
а также внутренние указатели на следующий и предыдущий элементы.
Основные методы: Next для перехода к следующему элементу
и Prev для перехода к предыдущему.
Синтаксис
type Element struct {
Value interface{}
// содержит скрытые поля
}
func (e *Element) Next() *Element
func (e *Element) Prev() *Element
Пример
Создадим список, добавим в него элементы и получим ссылку на один из них:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
elem1 := l.PushBack("a")
elem2 := l.PushBack("b")
elem3 := l.PushBack("c")
// Получаем ссылку на элемент
e := elem2
fmt.Println(e.Value)
}
Результат выполнения кода:
"b"
Метод Next()
Метод Next возвращает следующий элемент списка или nil,
если текущий элемент является последним:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
e := l.PushBack("a")
l.PushBack("b")
l.PushBack("c")
next := e.Next()
fmt.Println(next.Value)
}
Результат выполнения кода:
"b"
Метод Prev()
Метод Prev возвращает предыдущий элемент списка или nil,
если текущий элемент является первым:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
l.PushBack("a")
e := l.PushBack("b")
l.PushBack("c")
prev := e.Prev()
fmt.Println(prev.Value)
}
Результат выполнения кода:
"a"
Использование с List.Remove
Элемент может быть удален из списка с помощью метода Remove:
package main
import (
"container/list"
"fmt"
)
func main() {
l := list.New()
e := l.PushBack("a")
l.PushBack("b")
l.PushBack("c")
l.Remove(e)
for elem := l.Front(); elem != nil; elem = elem.Next() {
fmt.Println(elem.Value)
}
}
Результат выполнения кода:
"b"
"c"
Смотрите также
-
тип
list.List,
который представляет двусвязный список -
метод
list.List.PushBack,
который добавляет элемент в конец списка -
метод
list.List.PushFront,
который добавляет элемент в начало списка -
метод
list.List.Remove,
который удаляет элемент из списка