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  }