github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2015/go-for-java-programmers/closure.go (about) 1 // +build OMIT 2 3 package main 4 5 import "fmt" 6 7 func div(n, d int) (q, r int, err error) { 8 if d == 0 { 9 err = fmt.Errorf("%d/%d: divide by zero", n, d) 10 return 11 } 12 return n / d, n % d, nil 13 } 14 15 func main() { 16 var failures int 17 18 f := func(n, d int) { // HL 19 if q, r, err := div(n, d); err != nil { 20 fmt.Println(err) 21 failures++ // HL 22 } else { 23 fmt.Printf("%d/%d = %d leaving %d\n", n, d, q, r) 24 } 25 } 26 27 f(4, 3) 28 f(3, 0) 29 fmt.Println("failures:", failures) 30 }