...
Пример | Результат присваивания | Значение выражения присваивания |
---|
($x, $y, $z) = (1, 2, 3) | $x = 1 $y = 2 $z = 3 | (1, 2, 3) |
[$x, $y] = ($y, $x) | $x = $y $y = $x | [$y, $x] |
{'a': $x, 'b': $y} = {'b': true, 'a': false} | $x = false $y = true | {'a': false, 'b': true} |
($x, $y, $z) += [1, 2, 3] | $x = $x + 1 $y = $y + 2 $z = $z + 3 | ($x + 1, $y + 1, $z + 1) |
{3: $x, 7: $y} *= (2, 3) | $x = $x * 2 $y = $y * 3 | {3: $x * 2, 7: $y * 3} |
Функции
Основными строительными элементами выражений в блоке операций являются вызовы функций. Функция это некоторая часть функциональности бота. Например, с помощью функций можно оперировать датой и временем, вычислять более сложные арифметические операции, преобразовывать строку текста в намерения используя сервис NLU, работать с очередью сообщений клиента и т.д.
Чтобы вызвать функцию нужно указать её имя, затем в круглых скобках перечислить через запятую её параметры. Имена большинства функций состоят из двух частей разделяемых точкой: названия модуля и собственно названия функции.
Блок кода |
---|
|
$number = math.rand(5, 10) // Получаем случайное число от 5 до 10. math - название модуля, rand - название функции |
Также как и в случае методов объектов имена функций могут динамически вычисляться в процессе выполнения сценария бота.
Блок кода |
---|
|
$funcIdx = math.rand(0, 1) // Получем случайное число 0 или 1 которое будет индексом названия функции в кортеже
$number = math.(('min', 'max').get($funcIdx))(3, 7) // Получаем название функции min или max и далее вызываем её. Таким образом мы вычисляем случайным образом либо минимальное либо максимальное значение |