Go 模板使用

孙小兵 · · 3038 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一  什么是模板 

你一定听说过一种叫做MVC的设计模式,Model处理数据,View展现结果,Controller控制用户的请求,至于View层的处理,在很多动态语言里面都是通过在静态HTML中插入动态语言生成的数据,例如JSP中通过插入<%=....=%>,PHP中通过插入来实现的。

通过下面这个图可以说明模板的机制


Web应用反馈给客户端的信息中的大部分内容是静态的,不变的,而另外少部分是根据用户的请求来动态生成的,例如要显示用户的访问记录列表。用户之间只有记录数据是不同的,而列表的样式则是固定的,此时采用模板可以复用很多静态代码

二 Template 使用

package main

import(

"html/template"

"os"

)

type Person struct{

UserName string//必须大写,否则不能显示

Emails  []string

Friends  []*Friend

}

func main() {

t := template.New("fieldname example")

t,_ = t.Parse("hello {{.UserName}}!")

p := Person{UserName:"Astaxie"}

t.Execute(os.Stdout,p)

//foo()

}

Go语言的模板通过{{}}来包含需要在渲染时被替换的字段,{{.}}表示当前的对象,这和Java或者C++中的this类似,如果要访问当前对象的字段通过{{.FieldName}},但是需要注意一点:这个字段必须是导出的(字段首字母必须是大写的),否则在渲染的时候就会报错


https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/07.4.md


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:孙小兵

查看原文:Go 模板使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3038 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传