Usare i templates in Go

Mattepuffo's logo
Usare i templates in Go

Usare i templates in Go

Go ha già il suo package per i templates dentro text/template.

Anche se ci stanno svariati altri package, da quello che ho capito questo standard è già abbastanza veloce e utilizzato.

In questo articolo vediamo come usarlo.

Partiamo dal fondo, e cioè vogliamo ottenere un report di questo tipo:

---
Titolo: IT
Autore: Stephen King
Prezzo: 100.23

---
Titolo: Sahara
Autore: Clive Cussler
Prezzo: 97

Qui sotto il codice Go, che metto tutto insieme per comodità:

package main

import (
	"fmt"
	"os"
	"text/template"
)

type Libro struct {
	Titolo string
	Autore string
	Prezzo float32
}

func main() {
	libri := []Libro{
		{
			Titolo: "IT",
			Autore: "Stephen King",
			Prezzo: 100.23,
		},
		{
			Titolo: "Sahara",
			Autore: "Clive Cussler",
			Prezzo: 97,
		},
	}

	var tplFile = "libri.tmpl"

	tmpl, err := template.New(tplFile).ParseFiles(tplFile)

	if err != nil {
		fmt.Println(err)
		os.Exit(0)
	}

	err = tmpl.Execute(os.Stdout, libri)

	if err != nil {
		fmt.Println(err)
		os.Exit(0)
	}
}

Il codice cerca un file libri.tmpl che dentro avrà questo codice:

{{ range . }}
---
Titolo: {{ .Titolo }}
Autore: {{ .Autore }}
Prezzo: {{ .Prezzo }}
{{ end }}

Non vi rimane che sperimentare un pò!

Enjoy!


Condividi

Commentami!