热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

text/html模板包中的"范围"操作和"管道"说明.Golang

如何解决《text/html模板包中的"范围"操作和"管道"说明.Golang》经验,为你挑选了1个好方法。

我尝试在text/html模板包中获得一些优点.我从golang网站上读过它的文档.很难理解究竟是什么意思.(点)一般而且在范围动作的某个时间.究竟什么意思是"管道",也许很难理解,因为我的英语不是母语):

{{pipeline}}
The default textual representation of the value of the pipeline
is copied to the output.

我们来看一个例子:

    data := map[string]interface{}{
        "struct": &Order{
            ID:     1,
            CustID: 2,
            Total:  3.65,
            Name: "Something",
        },
        "name1":  "Timur",
        "name2": "Renat",
    }
    t.ExecuteTemplate(rw, "index", data)

这是"索引":

{{define "index"}}
    {{range $x := .}}
        {{.}}
        {{$x}}
{{$.struct.ID}}

# the lines below don't work and break the loop # {{.ID}} # or # {{.struct.ID}} # what if I want here another range loop that handles "struct" members # when I reach "struct" field in the data variable or just do nothing # and just continue the loop? {{end}} {{end}}

输出:

帖木儿
帖木儿
1

Renat
Renat
1

{1 2 3.65 Something}
{1 2 3.65 Something}
1



1> Simon Whiteh..:

管道

模板包中的管道指的是您在命令行中执行的相同类型的"管道".

例如,这是在Mac上为您的NIC分配默认网关的一种方法:

route -n get default | grep 'gateway' | awk '{print $2}'

基本上,route -n get default先运行.管道字符不是将结果打印到控制台,而是|"获取route命令的输出,并将其推入grep命令".此时,grep 'gateway'运行它接收的输入route.grep然后将输出推入awk.最后,由于没有更多的管道,您在屏幕上看到的唯一输出是awk想要打印的内容.

这在模板包中是相同的.您可以将值传递给方法调用并将它们链接在一起.如:

{{ "Hello world!" | printf "%s" }}

这相当于 {{ printf "%s" "Hello World!" }}

See an example in the Go Playground here

基本上,

{{ "Hello World!" | printf "%s"           }}
    ^^^^^^^^^^^^               ^^^^^^^^^^
         |__________________________|

这在函数式语言中是非常常见的(从我所看到的......我知道它在F#中的一个东西).

点.

点是"上下文意识".这意味着,它取决于你把它放在哪里改变意义.当您在模板的正常区域中使用它时,它就是您的模型.在range循环中使用它时,它将成为迭代的当前值.

See an example in the Go Playground here

在链接示例中,仅在范围循环内,$x并且.是相同的.循环结束后,点返回传递给模板的模型.

检查"struct"

你的结构是一个键值对... a map.为此,您需要确保在范围循环中提取两个部分:

{{ range $key, $value = . }}

这将为您提供每次迭代时的键和值.之后,您只需要检查相等性:

{{ if eq $key "struct" }}
    {{ /* $value.ID is the ID you want */ }}

See an example on the Go Playground here

希望这会有所帮助.


推荐阅读
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • andr ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • Pipeline支持两种语法:Declarative(在Pipeline2.5中引入)和ScriptedPipeline语法:pipeline{*insertDeclarative ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
author-avatar
Levenmamatq_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有