Когда то, Чупакабра писал вот такую статью, которая до сих пор актуальна и помогает всем скриптописателям Рос:
https://habr.com/ru/post/270719/
Небольшое дополнение к ней:
1. Объявляем переменную
:global Var
2. Какой у неё тип, если присвоения не было ? Должен быть nil согласно руководству по Рос. Однако, как и написано в исследовании Чупакабры нет - будет nothing
:put [:typeof $Var]
3. Однако, если сделать вот так:
:global Var []
то, тип переменной будет как и положено nil, так как выполнение пустого действия всегда дает nil (Цитата по Чупакабре)
:put [:typeof $Var]
4. Присвоение значений, ну это известно, традиционно при объявлении или с помощью :set
:global Var "val"
или
:set $Var "val"
* или, оказывается можно более экзотично !:
/system script environment set [find name="Var"] value="val"
5. Пойдем дальше. Как удалить переменную ? Если она локальная удалять не нужно - сама пропадёт, когда скрипт "выйдет" из области видимости {}. Если глобальная - конечно, когда надобность в переменной пропадает - лучше очищать, чтобы не засоряли память, тем, более, что переменная может содержать функцию.
Удалить глобальную переменную можно несколькими способами:
:set Var (:nothing); - присвоением "ничего"
или "совсем реально ничего" вообще не указывая что присваиваем (согласно Вики)
:set Var
или
:global Var (:nothing); - "пересозданием со значением ничего"
Кстати, внутрь круглых скобок можно поместить просто ":" или пустую (необъявленную переменную), результат будет тот же.
или вот так, не совcем традиционно:
/system script environment remove [find name="Var"]
Обнулить (очиcтить значение), как уже ясно из вышеизложенного можно так:
:global Var []
А, извращенно и экзотично, вот так:
:global Clear (:nothing)
/system script env set [find name="Var"] value=$Clear
А так можно удалить все глобальные переменные из окружения:
/system script environment remove [find]
А вот так суперэкзотично можно узнать, есть в окружении глобальные переменные вообще или нет:
:if ([/system script env find .id!=0]) do={:put "Variables are present in environment"} else= {:put "Environment is empty"}
Фух ... Ну как то вот так ... Дополнения приветствуются.
Небольшое дополнение к исслеованию переменных
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 1657
- Зарегистрирован: 15 сен 2017, 09:03