Spec-Zone.ru › Tcl/Tk

lreplace

Имя

lreplace — Замена элементов в списке на новые элементы

Синтаксис

lreplace список первый последний ?элемент элемент ...?

Описание

lreplace возвращает новый список, образованный заменой одного или нескольких элементов списка список на аргументы элемент. первый и последний — значения индексов, определяющие первый и последний элементы диапазона для замены. Значения индексов первый и последний интерпретируются так же, как значения индексов для команды индекс строки, поддерживая простую арифметику индексов и индексы, относительные к концу списка. 0 относится к первому элементу списка, а конец относится к последнему элементу списка. Если список пуст, то первый и последний игнорируются.

Если первый меньше нуля, он рассматривается как ссылка на позицию перед первым элементом списка. Для непустых списков элемент, указанный первым, должен существовать, или первый должен указывать на начало списка.

Если последний меньше первого, то любые указанные элементы будут вставлены в список перед точкой, указанной первым, без удаления элементов.

Аргументы элемент задают ноль или более новых аргументов, которые будут добавлены в список вместо удалённых. Каждый аргумент элемент станет отдельным элементом списка. Если аргументы элемент не указаны, то элементы между первым и последним просто удаляются. Если список пустой, то любые аргументы элемент добавляются в конец списка.

Примеры

Замена элемента списка другим элементом:
% lreplace {a b c d e} 1 1 foo
a foo c d e

Замена двух элементов списка тремя:

% lreplace {a b c d e} 1 2 three more elements
a three more elements d e

Удаление последнего элемента из списка в переменной:

% set var {a b c d e}
a b c d e
% set var [lreplace $var end end]
a b c d

Процедура удаления заданного элемента из списка:

proc lremove {listVariable value} {
    upvar 1 $listVariable var
    set idx [lsearch -exact $var $value]
    set var [lreplace $var $idx $idx]
}

См. также

список, lappend, lindex, linsert, llength, lsearch, lset, lrange, lsort, строка

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/lreplace.htm

Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/lreplace.htm

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API