Spec-Zone.ru › Tcl/Tk

set

Имя

set — Чтение и запись переменных

Синопсис

set varName ?value?

Описание

Возвращает значение переменной varName. Если value указано, то устанавливает значение varName в value, создавая новую переменную, если она не существует, и возвращает её значение. Если varName содержит открытую скобку и заканчивается закрытой скобкой, то она относится к элементу массива: символы перед первой открытой скобкой — имя массива, а символы между скобками — индекс в массиве. В противном случае varName относится к скалярной переменной.

Если varName включает квалификаторы пространства имён (в имени массива, если это элемент массива), или если varName неквалифицированно (не включает имена содержащих пространств имён), но никакая процедура не активна, varName относится к переменной пространства имён, разрешённой в соответствии с правилами, описанными в разделе РАЗРЕШЕНИЕ ИМЁН в справочной странице namespace.

Если активна процедура и varName неквалифицировано, то varName относится к параметру или локальной переменной процедуры, если только varName не было объявлено для разрешения иначе с помощью команд global, variable или upvar.

Примеры

Сохранить случайное число в переменную r:
set r [expr {rand()}]

Сохранить короткое сообщение в элемент массива:

set anAry(msg) "Hello, World!"

Сохранить короткое сообщение в элемент массива, заданный переменной:

set elemName "msg"
set anAry($elemName) "Hello, World!"

Скопировать значение в переменную out из переменной, имя которой хранится в vbl (заметим, что на практике часто проще использовать массивы вместо двойного косвенного обращения):

set in0 "small random"
set in1 "large random"
set vbl in[expr {rand() >= 0.5}]
set out [set $vbl]

См. также

expr, global, namespace, proc, trace, unset, upvar, variable

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

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

Spec-Zone.ru

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