Go中的模板与其他语言(例如PHP)中的模板不同。使用
template.FuncMap为您的模板创建自定义功能。
package mainimport ( "fmt" "log" "net/url" "os" "text/template")func main() { funcMap := template.FuncMap{ "delete": deleteMap, } u, err := url.Parse("http://example.com/test?param1=true¶m2=true") if err != nil { log.Fatal(err) } u = deleteMap(u, "param1") // works in regular pre and templates fmt.Println(u.RawQuery) const tmpl = ` {{$m := delete . "param2"}} <!-- WORKS! --> {{$m.RawQuery}} ` t := template.New("").Funcs(funcMap) t = template.Must(t.Parse(tmpl)) err = t.Execute(os.Stdout, u) if err != nil { log.Println("executing template:", err) }}func deleteMap(u *url.URL, key string) *url.URL { m := u.Query() m.Del(key) // key successful deleted! u.RawQuery = m.Enpre() return u}或者,尝试使用游乐场版本。



