Go 这个调用是如何调用的?

Go 这个调用是如何调用的?,go,pipeline,hugo,go-templates,Go,Pipeline,Hugo,Go Templates,在Hugo模板中,我知道可以使用function param调用函数: {{ singularize "cats" }} 但在文档中,我也看到您也可以做到: {{ "cats" | singularize }} 我从未遇到过这种调用函数的方法(在Ruby/Python等语言中)。这是特定于Go还是仅针对Hugo?这种调用函数的方法是如何调用的?另外,如果您有一种以上类型的参数,您可以这样做吗?这是Go模板引擎的一个功能,虽然这不是一个新想法,但如果您使用unix系统,您可以在shell命令中

在Hugo模板中,我知道可以使用
function param
调用函数:

{{ singularize "cats" }}
但在文档中,我也看到您也可以做到:

{{ "cats" | singularize }}

我从未遇到过这种调用函数的方法(在Ruby/Python等语言中)。这是特定于Go还是仅针对Hugo?这种调用函数的方法是如何调用的?另外,如果您有一种以上类型的参数,您可以这样做吗?

这是Go模板引擎的一个功能,虽然这不是一个新想法,但如果您使用unix系统,您可以在shell命令中执行相同的操作(例如,想想
ls | more

这称为“链接”:指定一系列命令,每个命令的输出用作链中下一个命令的输入

记录在:

可以通过使用管道字符“|”分隔命令序列来“链接”管道。在链式管道中,每个命令的结果作为以下命令的最后一个参数传递。管道中最终命令的输出是管道的值

Go模板引擎只允许您使用单个返回值注册和调用函数和方法;或2个返回值,其中第二个返回值的类型必须为
error
(检查该返回值以判断调用是否被视为成功,非
nil
errors以错误终止模板执行)。因此,不能链接具有多个返回值的命令,也不能指定元组将多个值传递给具有多个参数的函数


有关管道的更多信息,请参见Go模板引擎的一个功能,尽管这不是一个新想法,但如果您使用unix系统,您可以在shell命令中执行相同的操作(例如,
ls | more

这称为“链接”:指定一系列命令,每个命令的输出用作链中下一个命令的输入

记录在:

可以通过使用管道字符“|”分隔命令序列来“链接”管道。在链式管道中,每个命令的结果作为以下命令的最后一个参数传递。管道中最终命令的输出是管道的值

Go模板引擎只允许您使用单个返回值注册和调用函数和方法;或2个返回值,其中第二个返回值的类型必须为
error
(检查该返回值以判断调用是否被视为成功,非
nil
errors以错误终止模板执行)。因此,不能链接具有多个返回值的命令,也不能指定元组将多个值传递给具有多个参数的函数


有关管道的更多信息,请参见

Hugo使用了Go的标准模板库,该库已被详细记录:上述内容在Hugo自己的模板文档第一节的第一句中提到:实际上,Django模板中有一个类似的功能,称为过滤器。Hugo使用Go的标准模板库,这是有据可查的:上面提到了雨果自己的模板文档第一节的第一句话:实际上,Django模板中有一个类似的特性,称为过滤器。