| 7 | ) |
| 8 | |
| 9 | func NewEnv() map[string]any { |
| 10 | return map[string]any{ |
| 11 | "ok": true, |
| 12 | "f64": .5, |
| 13 | "f32": float32(.5), |
| 14 | "i": 1, |
| 15 | "i64": int64(1), |
| 16 | "i32": int32(1), |
| 17 | "array": []int{1, 2, 3, 4, 5}, |
| 18 | "list": []Foo{{"bar"}, {"baz"}}, |
| 19 | "foo": Foo{"bar"}, |
| 20 | "add": func(a, b int) int { return a + b }, |
| 21 | "div": func(a, b int) int { return a / b }, |
| 22 | "half": func(a float64) float64 { return a / 2 }, |
| 23 | "score": func(a int, x ...int) int { |
| 24 | s := a |
| 25 | for _, n := range x { |
| 26 | s += n |
| 27 | } |
| 28 | return s |
| 29 | }, |
| 30 | "greet": func(name string) string { return "Hello, " + name }, |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | func Func() expr.Option { |
| 35 | return expr.Function("fn", func(params ...any) (any, error) { |