From 0bb8ce2984e4d8cabbb10a44912ad4141d532c6d Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Wed, 25 Jan 2012 09:24:25 +1100 Subject: [PATCH] text/template: add example for Template R=golang-dev, r CC=golang-dev https://golang.org/cl/5564050 --- src/pkg/text/template/example_test.go | 69 +++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/pkg/text/template/example_test.go diff --git a/src/pkg/text/template/example_test.go b/src/pkg/text/template/example_test.go new file mode 100644 index 0000000000..b7701ea265 --- /dev/null +++ b/src/pkg/text/template/example_test.go @@ -0,0 +1,69 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package template_test + +import ( + "log" + "os" + "text/template" +) + +// Dear Aunt Mildred, +// +// It was a pleasure to see you at the wedding. +// Thank you for the lovely bone china tea set. +// +// Best wishes, +// Josie +// +// Dear Uncle John, +// +// It is a shame you couldn't make it to the wedding. +// Thank you for the lovely moleskin pants. +// +// Best wishes, +// Josie +// +// Dear Cousin Rodney, +// +// It is a shame you couldn't make it to the wedding. +// +// Best wishes, +// Josie +func ExampleTemplate() { + // Define a template. + const letter = ` +Dear {{.Name}}, +{{if .Attended}} +It was a pleasure to see you at the wedding.{{else}} +It is a shame you couldn't make it to the wedding.{{end}} +{{with .Gift}}Thank you for the lovely {{.}}. +{{end}} +Best wishes, +Josie +` + + // Prepare some data to insert into the template. + type Recipient struct { + Name, Gift string + Attended bool + } + var recipients = []Recipient{ + {"Aunt Mildred", "bone china tea set", true}, + {"Uncle John", "moleskin pants", false}, + {"Cousin Rodney", "", false}, + } + + // Create a new template and parse the letter into it. + t := template.Must(template.New("letter").Parse(letter)) + + // Execute the template for each recipient. + for _, r := range recipients { + err := t.Execute(os.Stdout, r) + if err != nil { + log.Println("executing template:", err) + } + } +}