РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
938 of 1593 menu

Метод ring.Ring.Prev

Метод ring.Ring.Prev возвращает указатель на предыдущий элемент кольцевого списка. Он не изменяет текущую позицию в кольце, а только возвращает ссылку на соседний элемент. Если кольцо пустое или содержит один элемент, метод вернет указатель на тот же самый элемент.

Синтаксис

ring.Prev() *Ring

Пример

Давайте создадим кольцо из пяти элементов и перейдем к предыдущему элементу от текущего:

package main import ( "container/ring" "fmt" ) func main() { r := ring.New(5) for i := 0; i < r.Len(); i++ { r.Value = i r = r.Next() } current := r prev := current.Prev() fmt.Printf("Current: %v, Previous: %v\n", current.Value, prev.Value) }

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

"Current: 0, Previous: 4"

Пример

Давайте пройдем по всем элементам кольца в обратном порядке, используя метод Prev:

package main import ( "container/ring" "fmt" ) func main() { r := ring.New(5) for i := 0; i < r.Len(); i++ { r.Value = i r = r.Next() } start := r for i := 0; i < r.Len(); i++ { fmt.Printf("%d ", r.Value) r = r.Prev() } fmt.Println() }

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

"0 4 3 2 1 "

Пример

Давайте покажем, что метод Prev не изменяет текущий элемент, а только возвращает ссылку на предыдущий:

package main import ( "container/ring" "fmt" ) func main() { r := ring.New(3) for i := 0; i < r.Len(); i++ { r.Value = i r = r.Next() } current := r prev := current.Prev() fmt.Printf("Before - Current: %v, Previous: %v\n", current.Value, prev.Value) prev.Value = 99 fmt.Printf("After - Current: %v, Previous: %v\n", current.Value, prev.Value) }

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

"Before - Current: 0, Previous: 2" "After - Current: 0, Previous: 99"

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

  • метод ring.Ring.Next,
    который возвращает следующий элемент кольцевого списка
  • метод ring.Ring.Move,
    который перемещается на указанное количество элементов
  • метод ring.Ring.Link,
    который связывает два кольца в одно
  • метод ring.Ring.Len,
    который возвращает количество элементов в кольце
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить