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!
go template tmpl
Commentami!