Метод list.List.Front

Метод Front структуры list.List возвращает первый элемент списка. Он не изменяет сам список и возвращает указатель на структуру list.Element. Если список пуст, метод возвращает nil. Этот метод часто используется для получения головного элемента при обходе списка с начала.

Синтаксис

gofunc (l *List) Front() *Element

Пример

Создадим список и добавим в него несколько элементов. Затем получим первый элемент и выведем его значение:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack(1)
  l.PushBack(2)
  l.PushBack(3)

  first := l.Front()
  if first != nil {
    fmt.Println(first.Value)
  }
}

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

go1

Пример

Проверим поведение метода на пустом списке. В этом случае Front вернет nil:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()

  first := l.Front()
  if first == nil {
    fmt.Println("empty list")
  } else {
    fmt.Println(first.Value)
  }
}

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

go"empty list"

Пример

Получим первый элемент и модифицируем его значение. Обратите внимание, что через указатель мы можем изменять данные внутри элемента:

gopackage main

import (
  "container/list"
  "fmt"
)

func main() {
  l := list.New()
  l.PushBack("a")
  l.PushBack("b")
  l.PushBack("c")

  first := l.Front()
  if first != nil {
    first.Value = "z"
  }

  for e := l.Front(); e != nil; e = e.Next() {
    fmt.Println(e.Value)
  }
}

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

go"z"
"b"
"c"

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

  • метод list.List.Back,
    который возвращает последний элемент списка
  • метод list.List.PushFront,
    который добавляет элемент в начало списка
  • метод list.List.MoveToFront,
    который перемещает существующий элемент в начало
  • структуру list.Element,
    которая представляет элемент списка