Типы данных
Типы данных, используемые в шаблонном движке JuniperBot
В данном разделе описываются все типы данных, используемые в шаблонном движке JuniperBot.
У некоторых типов данных методы могут иметь квоту вызовов. Квота означает сколько раз можно вызвать этот метод за шаблон. Вызовы, превышающие указанную квоту, будут проигнорированы и не будут выполнять никаких действий.
Примитивы#
Самыми базовыми выражениями являются примитивы, посмотрите на таблицу ниже:
Название | Примеры |
---|---|
Дробные числа | -1.5 , 5.7 , 1.0 |
Целые числа | -10 , 56 , 0 |
Нулевая ссылка | null |
Логический тип | true или false |
Строка | "строка в двойных скобочках" 'строка в апострофах' |
Символ | 'ф' |
Списки#
Объявить список можно либо упорядоченным перечислением элементов списка явно, либо указанием диапазона значений. Для объявления упорядоченных списков значений или результатов выражений необходимо явно перечислить их через запятую в квадратных скобках, например:
[1, 2, 3]
Для объявления списка через диапазон значений необходимо указать лишь начальный и конечный элемент списка:
[1..3]
Оба примера будут иметь одинаковый результат.
Методы#
Метод | Параметры | Возвращает | Описание |
---|---|---|---|
add(Элемент) |
Число Строка Логический |
Логический | Добавляет указанный элемент в конец списка. Возвращает true , если элемент был добавлен. |
addAll(Список) |
Список | Логический | Добавляет все элементы указанного списка в конец текущего списка. Возвращает true , если в результате этого список был изменён. |
replace(Индекс, Элемент) |
Индекс: Число Элемент: Число Строка Логический |
Число Строка Логический |
Заменяет элемент по указанному индексу на указанное значение. Возвращает предыдущее значение этой позиции. |
remove(Элемент) |
Число Строка Логический |
Логический | Удаляет первый найденный элемент из списка с указанным значением. Возвращает true , если элемент был удалён. |
removeAll(Список) |
Список | Логический | Удаляет все найденные элементы из списка. Возвращает true , если был удалён хотя бы один элемент. |
removeAt(Индекс) |
Число | Число Строка Логический |
Удаляет элемент по указанному индексу. Возвращает удалённый элемент списка. |
contains(Элемент) |
Число Строка Логический |
Логический | Проверяет наличие указанного элемента в списке. Возвращает true , если такой элемент существует. |
containsAll(Список) |
Список | Логический | Проверяет наличие всех указанных элементов в списке. Возвращает true , если указанные элементы существуют. |
containsAny(Список) |
Список | Логический | Проверяет наличие хотя бы одного из указанных элементов в списке. Возвращает true , если хотя бы один указанный элемент существует. |
indexOf(Элемент) |
Число Строка Логический |
Число | Возвращает индекс элемента в списке или -1 если такого элемента нет. |
countOf(Элемент) |
Число Строка Логический |
Число | Возвращает количество вхождений указанного элемента в список. |
clear() |
- | - | Полностью очищает список. |
Внимание
Модифицирующие методы доступны только для списков, созданных упорядоченным перечислением элементов по примеру выше.
Карта (Map)#
Карта — это структура данных, в которой значения хранятся не по одному как в списке выше, а в паре "ключ - значение". Ключом карты может быть любой идентификатор или строка, а значением — уже любое выражение. Объявляются карты следующим образом:
{ key1: 'value1', 'key 2': 'value2' }
Имейте в виду, что идентификаторы, представленные ключами, не являются названиями переменных, они всегда конвертируются в их строковое представление. Таким образом идентификатор key1
внутри карты будет строкой "key1"
.
Методы#
Указанные методы доступны только для карт, созданных вручную по примеру выше.
Метод | Параметры | Возвращает | Описание |
---|---|---|---|
put(Ключ, Значение) |
Ключ: Строка Значение: Число Строка Логический |
Число Строка Логический |
Добавляет в карту новую пару ключ-значение. Если указанный ключ уже есть в карте, заменяет его значение на новое. Возвращает предыдущее значение указанного ключа или null если такого не было |
putAll(Карта) |
Карта | - | Добавляет все элементы указанной карты в текущую. |
putIfAbsent(Ключ, Значение) |
Ключ: Строка Значение: Число Строка Логический |
Число Строка Логический |
Добавляет новую пару ключ-значение только если значения для указанного ключа в карте ещё нет. Возвращает существующее значение указанного ключа или null если такого не было |
remove(Ключ) |
Строка | Число Строка Логический |
Удаляет пару ключ-значение по указанномую ключу. Возвращает предыдущее значение указанного ключа или null если такого не было |
remove(Ключ, Значение) |
Ключ: Строка Значение: Число Строка Логический |
Логический | Удаляет пару ключ-значение по указанномую ключу и значению. Возвращает true если удаление успешно |
containsKey(Ключ) |
Строка | Логический | Возвращает true , если карта содержит указанный ключ. |
containsValue(Значение) |
Число Строка Логический |
Логический | Возвращает true если есть хотя бы один ключ с указанным значением. |
clear() |
- | - | Полностью очищает карту |
DateTime#
Этот тип данных описывает объект даты и времени и операции над ними.
Свойства#
Свойство | Тип | Описание |
---|---|---|
millis |
Число | Миллисекунды |
millisOfDay |
Число | Миллисекунды дня |
millisOfSecond |
Число | Миллисекунды секунды |
secondOfDay |
Число | Секунда дня |
secondOfMinute |
Число | Секунда минуты |
minuteOfDay |
Число | Минута дня |
minuteOfHour |
Число | Минута часа |
hourOfDay |
Число | Час дня |
dayOfMonth |
Число | День месяца |
dayOfWeek |
Число | День недели |
dayOfYear |
Число | День в году |
weekOfWeekyear |
Число | Неделя в году |
weekyear |
Число | Год с учетом недели1 |
monthOfYear |
Число | Месяц в году |
year |
Число | Год |
yearOfCentury |
Число | Год века |
yearOfEra |
Число | Год эпохи |
centuryOfEra |
Число | Век эпохи |
era |
Число | Эпоха |
zoneOffset |
Число | Смещение часового пояса в миллисекундах |
isAfterNow |
Логический | true если дата в будущем |
isBeforeNow |
Логический | true если дата в прошлом |
Методы#
Методы ниже не модифицирует текущий экземпляр, а возвращают новый.
Метод | Параметры | Возвращает | Описание |
---|---|---|---|
plusMillis(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество миллисекунд |
plusSeconds(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество секунд |
plusMinutes(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество минут |
plusHours(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество часов |
plusDays(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество дней |
plusWeeks(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество недель |
plusMonths(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество месяцев |
plusYears(Значение) |
Число | DateTime | Возвращает копию этой даты плюс указанное количество лет |
minusMillis(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество миллисекунд |
minusSeconds(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество секунд |
minusMinutes(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество минут |
minusHours(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество часов |
minusDays(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество дней |
minusWeeks(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество недель |
minusMonths(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество месяцев |
minusYears(Значение) |
Число | DateTime | Возвращает копию этой даты минус указанное количество лет |
isAfter(Дата) |
DateTime | Логический | Является ли эта дата позже указанной |
isBefore(Дата) |
DateTime | Логический | Является ли эта дата раньше указанной |
-
В определенные годы первая неделя начинается в декабре, например, в декабре 1997 года. В другие годы первая неделя начинается с 53-й недели предыдущего года, как, например, в январе 1999 года. В течение этих нескольких дней, когда номер недели текущего года относится к предыдущему году, свойства
year
иweekyear
возвращают разные значения. ↩