Перейти к основному содержимому

О функции 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