Работа с данными в сценариях бота основывается на различных типах данных. Это позволяет удобно организовать информацию и выполнять вычисления.
Все числа в системе представлены как вещественные (с плавающей точкой). Это означает, что они могут содержать дробные части. Минимальные и максимальные значения чисел зависят от среды, в которой выполняется интерпретатор.
Пример:
$x = 2.5 * 4 // Простой расчет с числами
Строки — это последовательности символов, заключенные в одинарные ' или двойные " кавычки.
Важное отличие: внутри двойных кавычек можно использовать специальные символы, которые интерпретируются особым образом:
| Специальная последовательность | Описание |
|---|---|
\n |
Перевод строки |
\r |
Возврат каретки |
\t |
Горизонтальная табуляция |
\" |
Двойная кавычка |
В одинарных кавычках символы трактуются буквально, за исключением последовательности \', которая означает одинарную кавычку.
Пример:
say("Привет\n\"Медвед!\"") // Двойные кавычки: поддержка специальных символов
say('Привет\n\'Медвед!\'') // Одинарные кавычки: всё трактуется как есть
Булевы значения имеют всего два состояния: true (истина) и false (ложь). Они часто используются в условных выражениях.
Пример:
$x = true // $x содержит ИСТИНА
$y = !$x // $y содержит ЛОЖЬ (инверсия значения)
Объекты — это сложные структуры данных с встроенными свойствами и методами.
Для доступа к свойствам и методам используется точка (.). Например, вы можете получить текст первого сообщения клиента из очереди с помощью объекта ClientMessage.
Пример:
$first = queue.first() // Получаем объект ClientMessage
$firstMessage = $first.message // Доступ к свойству message
Также можно динамически вызывать методы объекта.
Пример:
// Случайный выбор метода
$n = rand(0, 1)
$method = ["first", "last"].get($n)
// Вызов метода
$firstOrLast = queue.$method
Кортеж — это упорядоченная и неизменяемая коллекция. Элементы кортежа можно извлекать, но нельзя изменять.
Создаются с помощью круглых скобок.
Пример:
$items = (1, 2, 3) // Кортеж из трех элементов
$empty = () // Пустой кортеж
$single = ('a',) // Кортеж из одного элемента (запятая обязательна)
Методы работы с кортежами:
.count() — количество элементов..first() — первый элемент..last() — последний элемент..get(index) — элемент по индексу.Пример:
$count = $items.count() // Количество элементов
$first = $items.first() // Первый элемент
Список — это изменяемая коллекция, которую можно дополнять, изменять и очищать.
Создаются с помощью квадратных скобок.
Пример:
$items = [1, 2, 3] // Список из трех элементов
$empty = [] // Пустой список
Методы работы со списками:
.append(item) — добавить элемент в конец..prepend(item) — добавить элемент в начало..get(index) — элемент по индексу..clear() — удалить все элементы.Пример:
$items.append(4) // Добавить элемент
$first = $items.get(0) // Получить первый элемент
Словарь — это коллекция пар ключ-значение. Создаются с помощью фигурных скобок.
Пример:
$map = {'a': 1, 'b': 2} // Словарь с двумя парами
$empty = {} // Пустой словарь
Методы работы со словарями:
.get(key) — значение по ключу..set(key, value) — установить значение по ключу..keys() — список всех ключей..values() — список всех значений.Пример:
$value = $map.get('a') // Получить значение по ключу
$map.set('c', 3) // Добавить новую пару
nil — это специальное значение, обозначающее «ничего». Оно используется для неинициализированных переменных или для явного указания на отсутствие данных.
Пример:
$x = nil // Присвоение nil