Go 提供了两个模板包:text/template 和 html/template。 html/template 包专注于安全地生成 HTML 输出以防止代码注入,同时与 text/template 共享界面。因此,模板处理的基础知识主要记录在 text/template 包中。
理解管道
管道是指模板内的值评估序列。它们由由管道字符“|”分隔的命令组成。每个命令可以是一个值、带有参数的函数或方法调用,或者当放置在链的末尾时不带参数的方法。每个命令的结果作为最后一个参数传递给以下命令,最终命令的输出代表管道的值。
点 (.) 符号
点。是一个光标,指向传递给模板的数据结构中的当前位置。它最初指向传递给模板的值,但可以通过 {{range}} 或 {{with}} 等操作进行修改。
在模板中使用 .Name 时,您引用的是名称字段或点当前指向的值的方法。如果值是结构体,.Name 将访问模板开头的相应字段或方法。
模板包含中的管道
当使用 {{template }},您指定一个管道将当前点值传递给包含的模板。管道传递的值成为调用模板内的点。
使用 $ 访问原始数据
由于点在模板处理过程中可能会发生变化,因此 $ 符号提供访问传递给模板执行的原始值。这允许您到达原始值的任何部分,即使在深度嵌套的模板调用中也是如此。
以上是Go 模板引擎中的管道如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!