go语言template用法实例
本文实例讲述了go语言template用法。分享给大家供大家参考。具体分析如下:
golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是很不错的,使用起来非常方便
package main
import (
"fmt"
"os"
"text/template"
)
type Latlng struct {
Lat float32
Lng float32
}
func (latlng Latlng) String() string {
return fmt.Sprintf("%g/%g", latlng.Lat, latlng.Lng)
}
func main() {
data := []template.FuncMap{}
data = append(data, template.FuncMap{"name":"dotcoo1", "url":"http://www.jb51.net/", "latlng":Latlng{24.1, 135.1}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.jb51.net/", "latlng":Latlng{24.2, 135.2}})
data = append(data, template.FuncMap{"name":"dotcoo2", "url":"http://www.jb51.net/", "latlng":Latlng{24.3, 135.3}})
datatpl := `{{range .}}{{template "user" .}}{{end}}`
usertpl := `{{define "user"}}name:{{.name}}, url:{{.url}}, latlng:{{.latlng}} lat:{{.latlng.Lat}} lng:{{.latlng.Lng}}
{{end}}`
tpl, err := template.New("data").Parse(datatpl)
if err != nil {
panic(err)
}
_, err = tpl.Parse(usertpl)
if err != nil {
panic(err)
}
err = tpl.Execute(os.Stdout, data)
if err != nil {
panic(err)
}
println()
}
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
golang简单tls协议用法完整示例
本文实例讲述了golang简单tls协议用法.分享给大家供大家参考,具体如下: 生成私钥: openssl genrsa -out key.pem 2048 生成证书: openssl req -new -x509 -key key.pem -out cert.pem -days 3650 https: 复制代码 代码如下: package main import ( "io" "net/http" "log" ) fun
-
golang模板template自定义函数用法示例
本文实例讲述了golang模板template自定义函数用法.分享给大家供大家参考,具体如下: golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: 复制代码 代码如下: package main import ( "text/template" "time" "os" ) type User struct { Usern
-
golang解析xml的方法
本文实例讲述了golang解析xml的方法.分享给大家供大家参考,具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处本站下载. 完整示例代码: 复制代码 代码如下: package main import ( "os" "encoding/xml" // "encoding/json" &quo
-
golang的HTTP基本认证机制实例详解
本文实例讲述了golang的HTTP基本认证机制.分享给大家供大家参考,具体如下: 看了<<http权威指南>>第12章HTTP基本认证机制(本站下载地址:http://www.jb51.net/books/93254.html),感觉讲的蛮详细的,写了一个小小例子测试. 请求响应过程: 复制代码 代码如下: ==> GET /hello HTTP/1.1 Host: 127.0.0.1:12345 <== HTTP/1.1 401 Unauthorized WWW-A
-
golang网络socket粘包问题的解决方法
本文实例讲述了golang网络socket粘包问题的解决方法.分享给大家供大家参考,具体如下: 看到很多人问这个问题, 今天就写了个例子, 希望能帮助大家 首先说一下什么是粘包:百度上比较通俗的说法是指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾. 解决方案如下: 服务端: 复制代码 代码如下: package main import ( "bytes" "encoding/binary&quo
-
golang简单获取上传文件大小的实现代码
本文实例讲述了golang简单获取上传文件大小的方法.分享给大家供大家参考,具体如下: 复制代码 代码如下: package main import ( "fmt" "io" "net/http" "log" "os" ) // 获取文件大小的接口 type Size interface { Size() int64 } // 获取文件信息的接口 type S
-
Go语言多值替换的HTML模板实例分析
本文实例分析了Go语言多值替换的HTML模板用法.分享给大家供大家参考.具体如下: 这里通过两种方式提供基于HTML模板的多变量值替换.另外附加一个数组迭代的示例. 传入map实现多值替换 复制代码 代码如下: package main import ( "html/template" "os" ) func main() { t, _ := template.New("demo").Parse(`{{define "T"
-
golang判断chan channel是否关闭的方法
本文实例讲述了golang判断chan channel是否关闭的方法.分享给大家供大家参考,具体如下: 群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家 如果不判断chan是否关闭 Notice: 以下代码会产生死循环 复制代码 代码如下: package main import ( "fmt" ) func main() { c := make(chan int,
-
go语言template用法实例
本文实例讲述了go语言template用法.分享给大家供大家参考.具体分析如下: golang的template包很好用,做一些复杂的文本格式生成太有帮助了,生成网页也是很不错的,使用起来非常方便 复制代码 代码如下: package main import ( "fmt" "os" "text/template" ) type Latlng struct { Lat float32 Lng float32
-
GO语言Defer用法实例分析
本文实例讲述了GO语言Defer用法.分享给大家供大家参考.具体分析如下: defer:调用一个被 defer 的函数时在函数刚要返回之前延迟执行,当函数无论怎样返回,某资源必须释放时,可用这种与众不同.但有效的处理方式.传统的例子包括解锁互斥或关闭文件. 这样延迟一个函数有双重优势:一是你永远不会忘记关闭文件,此错误在你事后编辑函数添加一个返回路径时常常发生.二是关闭和打开靠在一起,比放在函数尾要清晰很多. 复制代码 代码如下: /** * Created with IntelliJ IDE
-
Python编程之字符串模板(Template)用法实例分析
本文实例讲述了Python编程之字符串模板(Template)用法.分享给大家供大家参考,具体如下: #coding=utf8 ''''' 字符串格式化操作符,需要程序员明确转换类型参数, 比如到底是转成字符串.整数还是其他什么类型. 新式的字符串模板的优势是不用去记住所有相关细节, 而是像shell风格的脚本语言里面那样使用美元符号($). 由于新式的字符串引进Template对象, Template对象有两个方法:substitute().safe_substitute(). substit
-
Go语言正则表达式用法实例小结【查找、匹配、替换等】
本文实例讲述了Go语言正则表达式用法.分享给大家供大家参考,具体如下: Go语言的正则表达式使用很简单,示例代码: 复制代码 代码如下: package test import ( "fmt" "regexp" ) func RegixBase() { //findTest() //findIndexTest() //findStringTest() //findChinesString() //findNum
-
Go语言map用法实例分析
本文实例讲述了Go语言map用法.分享给大家供大家参考.具体分析如下: map 映射键到值: map 在使用之前必须用 make 来创建(不是 new):一个值为 nil 的 map 是空的,并且不能赋值. 复制代码 代码如下: package main import "fmt" type Vertex struct { Lat, Long float64 } var m map[string]Vertex func main() { m = make(map[stri
-
Go语言MessageBox用法实例
本文实例讲述了Go语言MessageBox用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import ( "syscall" "unsafe" "fmt" ) func abort(funcname string, err int) { panic(funcname + " failed: " + syscall.Errno(er
-
Go语言接口用法实例
本文实例讲述了Go语言接口用法.分享给大家供大家参考.具体分析如下: 接口类型是由一组方法定义的集合. 接口类型的值可以存放实现这些方法的任何值. 复制代码 代码如下: package main import ( "fmt" "math" ) type Abser interface { Abs() float64 } func main() { var a Abser f := MyFloat(-math.Sqrt2)
-
go语言base64用法实例
本文实例讲述了go语言base64用法.分享给大家供大家参考.具体如下: 这里展示golang base64 的一个小例子,代码如下: 复制代码 代码如下: package main import ( "fmt" "encoding/base64" ) func main() { b64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl
-
go语言接口用法实例分析
本文实例讲述了go语言接口用法.分享给大家供大家参考.具体分析如下: 首先定义一个接口: 复制代码 代码如下: type I interface{ Get() int Put(int) } 这段话就定义了一个接口,它包含两个函数Get和Put 好了,我的一个接口实现了这个接口: 复制代码 代码如下: type S stuct {val int} func (this *S) Get int { return this.val } func (this *S)Put(v
-
易语言快照用法实例讲解
易语言-快照-实例详解,这个函数对制作截图软件有帮助,希望能帮到大家. 1.易语言新建一个windows窗口 点击进入代码编辑区 具体看如何用易语言编写自己第一个程序? 2.我们输入 快照() 3.我们展开这个函数 发现有3个参数 4.第一个参数可以省去,意思是获取屏幕显示内容,我们不填写 第二个和第三个参数我们,随便填写为500,500 5.我们利用函数 写到文件()具体可看 易语言如何写入文件? 我们输入写到文件 ("D:\百度经验\测试\1.jpg", 快照 (, 500, 50
随机推荐
- 详解C语言中return与exit的区别
- 理解Python垃圾回收机制
- Windows 2003标准版光盘启动安装过程详细图解
- Tomcat实现WebSocket的方法
- javascript中clipboardData对象用法详解
- ASP.NET中的无刷新验证码的开发(完整代码)
- 介绍php设计模式中的工厂模式
- 让table变成exls的示例代码
- Vue.js组件tree实现省市多级联动
- ruby+nokogori抓取糗事百科前10页并存储进数据库示例
- js仿支付宝多方框输入支付密码效果
- utf8的编码算法 转载
- Windows 2003的Web接口
- C语言 一级指针与二级指针详细介绍
- 讲解C++编程中Address-of运算符&的作用及用法
- c#动态加载卸载DLL的方法
- 用header 发送cookie的php代码
- Django admin实现图书管理系统菜鸟级教程完整实例
- 详解Spring Security的Web应用和指纹登录实践
- vue中使用codemirror的实例详解