> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ss14.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Переменные

Вывод команд Toolshed можно сохранять в именованные переменные с помощью команды присваивания `=>`. Имена переменных должны начинаться с `$`. Например, следующий код определит простую int-переменную, а затем несколько раз увеличит её:

```
> i 1 => $x
1

> i 1 + $x => $x
2

> i 1 + $x => $x
3
```

Текущие определённые переменные можно вывести командой `vars`:

```
> vars
more = ,
x = 4,
self = 3015
```

Переменные `$self` и `$more` — это специальные переменные, определённые оболочкой. `$self` указывает на текущую сущность игрока, а `$more` используется, когда вывод команды слишком велик для печати; в этом случае оставшийся вывод можно запросить, выполнив команду `more`.

## Команда `Var`

Если вы хотите передать значение, хранящееся в переменной, в другую команду, используйте команду `var`, которая просто считывает значение переменной.

Например:

```
> var $x
3

> var $x * 2
6
```

## Команда `Val`

Поскольку Toolshed является строго типизированным, для парсинга валидного выполнения команды требуется знать типы значений, которые будут возвращены командой. Учитывая, что содержимое переменной может измениться во время выполнения команды, это означает, что некоторые команды могут не распарситься. В таких случаях можно использовать команду `val`, хотя она требует явного указания типа.

```
> val int $x
3

> val int $x * 2
6
```

## Переменная `$marked`

Переменные не обязательно должны устанавливаться через `=>` или другие команды Toolshed — их могут устанавливать другие системы. Например, в SS14 есть административная команда "mark", которая присваивает сущность переменной `$marked` Toolshed, для чего также существует специальная команда `marked` для чтения её содержимого. Однако в данном случае команда и глагол существуют в основном для удобства.
