О функции return
Аргументы:
data
: Данные, которые нужно вернуть вызывающему
Функция return
может использоваться в макросах для возврата данных вызывающему. Тип данных (словарь, список, целое число и т.д.) будет сохранен при вызове return
. Вы можете использовать функцию return
следующими способами в ваших макросах: как выражение или как оператор.
- Выражение — Используйте выражение, когда цель состоит в том, чтобы вывести строку из макроса.
- Оператор с тегом
do
— Используйте оператор с тегомdo
, чтобы выполнить функцию return без генерации выходной строки. Это особенно полезно, когда вы хотите выполнить действия, не обязательно вставляя их результаты непосредственно в шаблон.
В следующем примере {{ return([1,2,3]) }}
действует как выражение, которое напрямую выводит строку, что делает его подходящим для прямой вставки возвращаемых значений в SQL-код.
macros/get_data.sql
{% macro get_data() %}
{{ return([1,2,3]) }}
{% endmacro %}
В качестве альтернативы, вы можете использовать оператор с тегом do (или выражение-операторы), чтобы выполнить функцию return без генерации выходной строки.
В следующем примере {% do return([1,2,3]) %}
действует как оператор, который выполняет действие возврата, но не выводит строку:
macros/get_data.sql
{% macro get_data() %}
{% do return([1,2,3]) %}
{% endmacro %}
models/my_model.sql
select
-- get_data() возвращает список!
{% for i in get_data() %}
{{ i }}
{%- if not loop.last %},{% endif -%}
{% endfor %}
0