github.com/traefik/yaegi@v0.15.1/_test/issue-1361.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "math" 6 ) 7 8 type obj struct { 9 num float64 10 } 11 12 type Fun func(o *obj) (r *obj, err error) 13 14 func numFun(fn func(f float64) float64) Fun { 15 return func(o *obj) (*obj, error) { 16 return &obj{fn(o.num)}, nil 17 } 18 } 19 20 func main() { 21 f := numFun(math.Cos) 22 r, err := f(&obj{}) 23 fmt.Println(r, err) 24 } 25 26 // Output: 27 // &{1} <nil>