Как называется этот призыв?

Я знаю, что внутри шаблонов Hugo вы можете вызывать функцию с помощью function param:

{{ singularize "cats" }}

но в документации я также вижу, что вы также можете:

{{ "cats" | singularize }}

Я никогда не сталкивался с таким способом вызова функций (внутри таких языков, как Ruby / Python). Это для Go или просто для Hugo? Как вызывается этот способ вызова функции? Кроме того, можно ли это сделать, если у вас более одного типа аргументов?

Hugo использует стандартную библиотеку шаблонов Go, которая хорошо документирована: golang.org/pkg/html/template

Adrian 18.12.2018 15:20

Вышеупомянутое упоминается в первом предложении первого раздела собственных шаблонных документов Хьюго: gohugo.io/templates/introduction

Adrian 18.12.2018 15:21

Собственно, в шаблонах Django есть похожая функция, называемая фильтрами.

Mad Wombat 18.12.2018 16:33
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
3
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это особенность механизма шаблонов Go, хотя это не новая идея, если вы использовали системы unix, вы можете делать то же самое в командах оболочки (подумайте, например, о ls |more).

Это называется «объединение в цепочку»: вы указываете последовательность команд, и вывод каждой из них используется в качестве входных данных для следующей в цепочке.

Это задокументировано в text/template:

A pipeline may be "chained" by separating a sequence of commands with pipeline characters '|'. In a chained pipeline, the result of each command is passed as the last argument of the following command. The output of the final command in the pipeline is the value of the pipeline.

Механизм шаблонов Go позволяет регистрировать и вызывать функции и методы только с одним возвращаемым значением; или 2 возвращаемых значения, из которых второе должно иметь тип error (который проверяется, чтобы определить, считается ли вызов успешным, а ошибки, не относящиеся к nil, завершают выполнение шаблона с ошибкой). Таким образом, вы не можете связать команды, которые имеют несколько возвращаемых значений, и вы не можете указать кортежи для передачи нескольких значений функциям, имеющим несколько параметров.

Подробнее о конвейерах см. конвейеры движка шаблонов golang.

Другие вопросы по теме