Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
|
help:variables [2024/10/14 07:35] aleks_versus проба обновления до 5.9.0 |
help:variables [2025/10/05 07:48] (текущий) aleks_versus [Локальные переменные] |
||
|---|---|---|---|
| Строка 283: | Строка 283: | ||
| О функции **''ARRSIZE''** так же можно подробнее почитать в разделе [[help:arrays|"Массивы"]]. | О функции **''ARRSIZE''** так же можно подробнее почитать в разделе [[help:arrays|"Массивы"]]. | ||
| + | |||
| + | ===== Получение значений из переменных ===== | ||
| + | |||
| + | Чтобы получить значение переменной, достаточно написать её имя в выражении. | ||
| + | |||
| + | При этом, чтобы получить кортеж, нужно поставить перед именем переменной ''%'', а чтобы получить строковое значение, нужно поставить перед именем переменной ''$''. | ||
| + | |||
| + | Примеры: | ||
| + | |||
| + | <sxh qsp> | ||
| + | ! присваиваем значение одной переменной - другой | ||
| + | num = int & ! выражение здесь состоит из одной переменной | ||
| + | ! выводим значение переменной на экран | ||
| + | *pl $text &! выражение состоит из одной переменной | ||
| + | ! вычисляем куб числа, записанного в переменную и выводим на экран | ||
| + | d * d * d &! выражение состоит из двух операций умножения | ||
| + | </sxh> | ||
| + | |||
| + | **Важно!** Если мы пытаемся получить значение переменной, которая не была создана, то такая переменная вернёт значение по умолчанию: | ||
| + | * для числовых переменных значение по умолчанию ''0'' (ноль); | ||
| + | * для текстовых переменных значение по умолчанию ''""'' (пустая строка); | ||
| + | * для кортежей значение по умолчанию ''%%[]%%'' (пустой кортеж). | ||
| ===== Локальные переменные ===== | ===== Локальные переменные ===== | ||
| Строка 334: | Строка 356: | ||
| gosub 'foo' | gosub 'foo' | ||
| *nl i & ! на экране увидим число 99 | *nl i & ! на экране увидим число 99 | ||
| - | - start - | + | -- start - |
| # foo | # foo | ||
| Строка 347: | Строка 369: | ||
| end | end | ||
| *nl i & ! на экране увидим число 10 | *nl i & ! на экране увидим число 10 | ||
| - | - foo - | + | -- foo - |
| # undo | # undo | ||
| Строка 355: | Строка 377: | ||
| i+=1 & ! увеличиваем значение переменной, влияя на значение в foo | i+=1 & ! увеличиваем значение переменной, влияя на значение в foo | ||
| *p 'undo:<<i>>, ' & ! на экране появятся числа 1,3,5,7,9 с припиской undo: | *p 'undo:<<i>>, ' & ! на экране появятся числа 1,3,5,7,9 с припиской undo: | ||
| - | - undo - | + | -- undo - |
| </sxh> | </sxh> | ||
| - | **Однако!** Значения локальных переменных не транслируются в действия (в отличие от значений массива **''ARGS''** на текущей локации): | + | **Однако!** Значения локальных переменных не транслируются в действия и гиперссылки (в отличие от значений массива **''ARGS''** на текущей локации): |
| <sxh qsp> | <sxh qsp> | ||
| Строка 371: | Строка 393: | ||
| </sxh> | </sxh> | ||
| - | !!! TODO: ЗДЕСЬ НУЖНО УТОЧНИТЬ ИНФОРМАЦИЮ ПО ПОВЕДЕНИЮ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ В ОБРАБОТЧИКАХ СОБЫТИЙ ### Примеры назначения локальных переменных | + | **Важно.** Значения локальных переменных не передаются в локации-обработчики событий, однако передаются на локации-обработчики пунктов меню. Будьте внимательны. |
| + | |||
| + | **Ещё одна ОЧЕНЬ важная особенность!** При объявлении локальной переменной вы можете присвоить ей значение глобальной переменной, или локальной переменной объявленной в предыдущем блоке кода. Пример кода, который последовательно выведет числа 200, 113, 99: | ||
| + | |||
| + | <sxh qsp> | ||
| + | # start | ||
| + | |||
| + | a = 99 | ||
| + | @foo | ||
| + | *pl a &! на экране появится 99 | ||
| + | |||
| + | -- start | ||
| + | |||
| + | # foo | ||
| + | |||
| + | ! здесь в выражение подставится | ||
| + | ! значение переменной a из локации start: | ||
| + | local a = a + 14 &! 99+14 | ||
| + | |||
| + | dynamic { | ||
| + | ! теперь в выражении используется | ||
| + | ! значение a из локации foo | ||
| + | local a = a + 87 | ||
| + | *pl a &! 200 | ||
| + | } | ||
| + | |||
| + | ! на экран выведется 113: | ||
| + | *pl a | ||
| + | |||
| + | -- foo | ||
| + | </sxh> | ||
| + | |||
| + | ==== Примеры назначения локальных переменных ==== | ||
| Две локации, на каждой из которых собственная переменная **''i''**: | Две локации, на каждой из которых собственная переменная **''i''**: | ||