Работа с данными в сценариях бота основывается на различных типах данных. Это позволяет удобно организовать информацию и выполнять вычисления.
Все числа в системе представлены как вещественные (с плавающей точкой). Это означает, что они могут содержать дробные части. Минимальные и максимальные значения чисел зависят от среды, в которой выполняется интерпретатор.
Пример:
$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