golang模板template自定义函数用法示例

golang的模板十分强大,其中的unix管道风格函数调用很是喜欢.

模板中有很多内置可以参看pkg文档,

另外还可以实现自定义函数.

例子如下:

package main
import (
    "text/template"
    "time"
    "os"
)
type User struct {
    Username, Password string
    RegTime time.Time
}
func ShowTime(t time.Time, format string) string {
    return t.Format(format)
}
func main() {
    u := User{"dotcoo", "dotcoopwd", time.Now()}
    t, err := template.New("text").Funcs(template.FuncMap{"showtime":ShowTime}).
        Parse(`<p>{{.Username}}|{{.Password}}|{{.RegTime.Format "2006-01-02 15:04:05"}}</p>
<p>{{.Username}}|{{.Password}}|{{showtime .RegTime "2006-01-02 15:04:05"}}</p>
`)
    if err != nil {
        panic(err)
    }
    t.Execute(os.Stdout, u)
}

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-05-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

Linux中mongodb安装和导出为json

采用官方工具导出mongo数据为json格式 文档:https://docs.mongodb.com/manual/reference/program/mong...

3517
来自专栏IT笔记

Terminate ZkClient event thread.

因为以前本地测试一直没有报错zookeeper 也没用动过,190测试服务器也一直没问题,所以一直不会以为是版本的问题。

4424
来自专栏跟着阿笨一起玩NET

ASP.NET 防止同一用户同时登陆

       要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。在这里使用一个cache存放已经登陆...

991
来自专栏desperate633

深入理解Redis持久化Redis 持久化

本文翻译自官方文档 http://redis.io/topics/persistence 。

922
来自专栏fixzd

redis系列:RDB持久化与AOF持久化

Redis的数据都是存储在内存中的,所以Redis持久化也就是要把Redis存储在内存中的数据保存到硬盘。 Redis提供了两种持久化方式

972
来自专栏Laoqi's Linux运维专列

Redis的两种备份方式

1253
来自专栏会跳舞的机器人

Redis持久化

Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大. 如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式. 你也可以同...

2592
来自专栏IT笔记

Unable to connect to zookeeper server within timeout: 5000

本地项目远程连接190的zookeeper报错,提示无法连接。 查看一下防火墙,2181端口也加入了,关闭防火墙还是不行。 因为以前本地测试一直没有报错zo...

5047
来自专栏散尽浮华

redis持久化策略梳理及主从环境下的策略调整记录

redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化。可以不定期的通过异步方式保存到磁盘上(即“半持久化模式”...

44610
来自专栏晓晨的专栏

.NET Core 控制台应用程序使用异步(Async)Main方法

1013

扫码关注云+社区