在我的模板中,我想包括一些默认的meta个标签(90%的时间).但是,当设置了特定属性时,我想显示一组不同的文本.

我知道我可以设置匿名struct,并将属性设置为"default""some-x".然而,这意味着,我需要向90%的当前通过nil的处理程序添加一个匿名 struct .

有没有办法做一些像这样的事情

{{if eq . nil}} 
   // default meta tag
{{else if eq .MetaValue "some-x"}} 
   //other
{{end}}

如果我try 上面的代码,它会编译,但不会执行我想要的操作.感谢您对如何在不添加大量锅炉板的情况下正确处理的建议.

谢谢!

推荐答案

{{if not .}}
   output when . is nil or otherwise empty including
     false, 0, and any array, slice, map, or string of length zero
{{else if eq .MetaValue "some-x"}}
       // some-x case
{{else}} 
       // other case
{{end}}

Go相关问答推荐

JWT库返回及时无效的令牌有效

Go GORM创建表,但不创建列

带有条件的for循环中缺少RETURN语句

Golang中的泛型 struct /接口列表

在GO中使用泛型类型 struct 实现接口方法

重新赋值变量时未清除动态类型-这是错误吗?

如何确定泛型类型在运行时是否可比较?

Go 中的sync.Cond 与 Wait 方法

使用 OpenTelemetry 统一不同服务的范围

如何为ANTLR4目标Go调试监听器

Golang 中具体类型的错误片段

从动态输入中提取字符串,其中部分字符串可能不存在

为什么 Go 被认为是部分抢占式的?

对所有标志进行 ORing 的简短方法

自定义指标未显示在 prometheus web ui 中,grafana 中也是如此

vs 代码调试 go 测试不通过标志

如何使用golang操作很长的字符串以避免内存不足

出于某种原因,Golang (Go) AES CBC 密文被填充了 16 个 0x00 字节

Go lang - 惯用的默认后备

gqlgen go,通过添加一个解析器来减少数据库调用