Функции
В данной статье при описании функций приняты следующие обозначения:
|
Синтаксис
Синтаксис вызова функций VRL подробно описан в статье Выражения. Рассмотрим следующую спецификацию функции:
redact(значение: <строка | объект | массив>, фильтры: <массив>, [redactor: <строка | объект> ])) :: <строка | объект | массив>
Описанную функцию можно вызвать так:
redact("Userid 123456-7890", filters: [r'\d+\-\d+'], redactor: "sha2")
В данном примере функция возвращает строку:
"Userid pjp9wnmJhpKNXuVS7symPoFF12EAnytbXV2t/KD0GVs="
Возможность функции возвращать ошибки
Некоторые функции VRL могут быть помечены как возвращающие ошибки или не возвращающие ошибки. Когда функция определена как возвращающая ошибки, она может вернуть ошибку во время выполнения, требуя обработки ошибки перед компиляцией программы.
Если функция определена как не возвращающая ошибки, это означает, что при правильных аргументах функции функция никогда не может завершиться с ошибкой во время выполнения, и поэтому обработка ошибки не требуется.
Важно помнить, что даже если функция не должна возвращать ошибку, но при этом один из ее аргументов возвращает ошибку во время выполнения, вся функция будет считаться ошибочной. В такой ситуации необходимо обработать ошибку.
Следует отметить, что даже если функция определена как не возвращающая ошибки, но при этом любой из ее аргументов возвращает ошибку во время выполнения, функция рассматривается как возвращающая ошибки, и, следовательно, в этом случае необходимо будет обработать ошибку.
Компилятор VRL обеспечивает обработку всех потенциальных ошибок в программе, поэтому нет необходимости беспокоиться о потенциально пропущенных сбоях во время выполнения.