package main import ( "fmt" "html/template" "net/http" ) type User struct { ID int Name string Active bool } func IsUserOdd(u *User) bool { return u.ID%2 != 0 } func main() { tmplFuncs := template.FuncMap{ "OddUser": IsUserOdd, } tmpl, err := template. New(""). Funcs(tmplFuncs). ParseFiles("func.html") if err != nil { panic(err) } users := []User{ User{1, "Vasily", true}, User{2, "Ivan", false}, User{3, "Dmitry", true}, } http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { err := tmpl.ExecuteTemplate(w, "func.html", struct { Users []User }{ users, }) if err != nil { panic(err) } }) fmt.Println("starting server at :8080") http.ListenAndServe(":8080", nil) }