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网络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
-
golang判断chan channel是否关闭的方法
本文实例讲述了golang判断chan channel是否关闭的方法.分享给大家供大家参考,具体如下: 群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家 如果不判断chan是否关闭 Notice: 以下代码会产生死循环 复制代码 代码如下: package main import ( "fmt" ) func main() { c := make(chan int,
-
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模板template自定义函数用法示例
本文实例讲述了golang模板template自定义函数用法.分享给大家供大家参考,具体如下: golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: 复制代码 代码如下: package main import ( "text/template" "time" "os" ) type User struct { Usern
-
Go语言多值替换的HTML模板实例分析
本文实例分析了Go语言多值替换的HTML模板用法.分享给大家供大家参考.具体如下: 这里通过两种方式提供基于HTML模板的多变量值替换.另外附加一个数组迭代的示例. 传入map实现多值替换 复制代码 代码如下: package main import ( "html/template" "os" ) func main() { t, _ := template.New("demo").Parse(`{{define "T"
-
golang解析xml的方法
本文实例讲述了golang解析xml的方法.分享给大家供大家参考,具体如下: golang解析xml真是好用,特别是struct属性的tag让程序简单了许多,其他变成语言需要特殊类型的在golang里直接使用tag舒服 xml文件点击此处本站下载. 完整示例代码: 复制代码 代码如下: package main import ( "os" "encoding/xml" // "encoding/json" &quo
-
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
随机推荐
- 使用BAT命令关闭:135端口、139端口、445端口等
- 利用Angularjs和Bootstrap前端开发案例实战
- 批处理制作二维码生成器
- 详解使用fetch发送post请求时的参数处理
- 配置php.ini实现PHP文件上传功能
- python3使用urllib示例取googletranslate(谷歌翻译)
- Android开发之子线程操作UI的几种方法
- Anroid四大组件service之本地服务的示例代码
- Docker的基本使用笔记
- php生成随机密码的三种方法小结
- js调用css属性写法
- 详解 javascript中offsetleft属性的用法
- win2003 service pack2 IIS 无法复制CONVLOG.EXE CONVLOG.EX_问题处理
- android编程实现添加文本内容到sqlite表中的方法
- 网站优化方法(精选)及SEO实例参考
- Android编程实现ActionBar的home图标动画切换效果
- js判断一个字符串是以某个字符串开头的简单实例
- Android控件之SeekBar的用法总结
- Android最简单的限制输入方法(只包含数字、字母和符号)
- 仿ElementUI实现一个Form表单的实现代码