Метод list.List.MoveToBack
Метод MoveToBack перемещает переданный элемент
в конец списка. Если элемент уже находится в конце списка,
то метод не выполняет никаких действий. Первым параметром
метод принимает указатель на элемент Element,
который нужно переместить.
Синтаксис
list.MoveToBack(e)
Пример
Давайте создадим список с элементами "a", "b",
"c", "d" и "e", а затем переместим
элемент "a" в конец списка:
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")
e := l.Front()
l.MoveToBack(e)
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"b"
"c"
"d"
"e"
"a"
Пример
Давайте попробуем переместить элемент, который уже находится в конце списка. В этом случае список не изменится:
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")
e := l.Back()
l.MoveToBack(e)
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"a"
"b"
"c"
"d"
"e"
Пример
Давайте рассмотрим более сложный пример, где мы перемещаем элемент из середины списка в конец:
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 target *list.Element
for e := l.Front(); e != nil; e = e.Next() {
if e.Value == "c" {
target = e
break
}
}
if target != nil {
l.MoveToBack(target)
}
for e := l.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value)
}
}
Результат выполнения кода:
"a"
"b"
"d"
"e"
"c"
Смотрите также
-
метод
list.List.MoveToFront,
который перемещает элемент в начало списка -
метод
list.List.PushBack,
который добавляет элемент в конец списка -
метод
list.List.PushFront,
который добавляет элемент в начало списка -
метод
list.List.Remove,
который удаляет элемент из списка