Здесь показаны различия между двумя версиями данной страницы.
| Both sides previous revision Предыдущая версия Следущая версия | Предыдущая версия | ||
|
help:variables [2024/10/14 10:12] aleks_versus значение по умолчанию |
help:variables [2025/10/05 07:48] (текущий) aleks_versus [Локальные переменные] |
||
|---|---|---|---|
| Строка 356: | Строка 356: | ||
| gosub 'foo' | gosub 'foo' | ||
| *nl i & ! на экране увидим число 99 | *nl i & ! на экране увидим число 99 | ||
| - | - start - | + | -- start - |
| # foo | # foo | ||
| Строка 369: | Строка 369: | ||
| end | end | ||
| *nl i & ! на экране увидим число 10 | *nl i & ! на экране увидим число 10 | ||
| - | - foo - | + | -- foo - |
| # undo | # undo | ||
| Строка 377: | Строка 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> | ||
| Строка 394: | Строка 394: | ||
| **Важно.** Значения локальных переменных не передаются в локации-обработчики событий, однако передаются на локации-обработчики пунктов меню. Будьте внимательны. | **Важно.** Значения локальных переменных не передаются в локации-обработчики событий, однако передаются на локации-обработчики пунктов меню. Будьте внимательны. | ||
| + | |||
| + | **Ещё одна ОЧЕНЬ важная особенность!** При объявлении локальной переменной вы можете присвоить ей значение глобальной переменной, или локальной переменной объявленной в предыдущем блоке кода. Пример кода, который последовательно выведет числа 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> | ||
| ==== Примеры назначения локальных переменных ==== | ==== Примеры назначения локальных переменных ==== | ||