mirror of
https://github.com/golang/go
synced 2024-11-19 13:54:56 -07:00
exp/template: add functions print and println.
R=golang-dev, adg CC=golang-dev https://golang.org/cl/4687041
This commit is contained in:
parent
4acddca41b
commit
abae847134
@ -207,8 +207,10 @@ var execTests = []execTest{
|
||||
{"if emptymap", "{{if .MSIEmpty}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
|
||||
{"if map", "{{if .MSI}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
|
||||
|
||||
// Printf.
|
||||
{"printf", `{{printf "hello, printf"}}`, "hello, printf", tVal, true},
|
||||
// Print etc.
|
||||
{"print", `{{print "hello, print"}}`, "hello, print", tVal, true},
|
||||
{"print", `{{print 1 2 3}}`, "1 2 3", tVal, true},
|
||||
{"println", `{{println 1 2 3}}`, "1 2 3\n", tVal, true},
|
||||
{"printf int", `{{printf "%04x" 127}}`, "007f", tVal, true},
|
||||
{"printf float", `{{printf "%g" 3.5}}`, "3.5", tVal, true},
|
||||
{"printf complex", `{{printf "%g" 1+7i}}`, "(1+7i)", tVal, true},
|
||||
|
@ -17,17 +17,27 @@ import (
|
||||
|
||||
// FuncMap is the type of the map defining the mapping from names to functions.
|
||||
// Each function must have either a single return value, or two return values of
|
||||
// which the second has type os.Error.
|
||||
// which the second has type os.Error. If the second argument evaluates to non-nil
|
||||
// during execution, execution terminates and the error is returned by Execute.
|
||||
type FuncMap map[string]interface{}
|
||||
|
||||
var funcs = map[string]reflect.Value{
|
||||
"and": reflect.ValueOf(and),
|
||||
"html": reflect.ValueOf(HTMLEscaper),
|
||||
"index": reflect.ValueOf(index),
|
||||
"js": reflect.ValueOf(JSEscaper),
|
||||
"not": reflect.ValueOf(not),
|
||||
"or": reflect.ValueOf(or),
|
||||
"printf": reflect.ValueOf(fmt.Sprintf),
|
||||
"and": reflect.ValueOf(and),
|
||||
"html": reflect.ValueOf(HTMLEscaper),
|
||||
"index": reflect.ValueOf(index),
|
||||
"js": reflect.ValueOf(JSEscaper),
|
||||
"not": reflect.ValueOf(not),
|
||||
"or": reflect.ValueOf(or),
|
||||
"print": reflect.ValueOf(fmt.Sprint),
|
||||
"printf": reflect.ValueOf(fmt.Sprintf),
|
||||
"println": reflect.ValueOf(fmt.Sprintln),
|
||||
}
|
||||
|
||||
// Funcs adds to the global function map the elements of the
|
||||
// argument map. It panics if a value in the map is not a function
|
||||
// with appropriate return type.
|
||||
func Funcs(funcMap FuncMap) {
|
||||
addFuncs(funcs, funcMap)
|
||||
}
|
||||
|
||||
// addFuncs adds to values the functions in funcs, converting them to reflect.Values.
|
||||
|
Loading…
Reference in New Issue
Block a user