Embedding types example
Published: Wednesday, Aug 23, 2017 Last modified: Tuesday, Oct 7, 2025
Reference: https://golang.org/doc/effective_go.html#embedding
https://play.golang.org/p/ry8L4tqbjh
package main
import (
	"log"
	"os"
	"text/template"
	"time"
)
// https://stackoverflow.com/a/25015260/4534
type customTime struct {
	time.Time
}
func main() {
	tmpl, err := template.New("test").Parse(`{{ .Start }} {{ .Stop }} Duration: {{ .Stop.Time.Sub .Start.Time }}`)
	if err != nil {
		panic(err)
	}
	err = tmpl.Execute(os.Stdout, struct {
		Start customTime
		Stop  customTime
	}{
		Start: customTime{time.Now()},
		Stop:  customTime{time.Now().AddDate(0, 0, 1)},
	})
	if err != nil {
		log.Fatal(err)
	}
}