// go run v1.go -- 10 v1.go package main import ( "bufio" "flag" "fmt" "os" ) // START OMIT func lineCount(path string) (int, error) { f, err := os.Open(path) if err != nil { return 0, err } defer f.Close() r := bufio.NewReader(f) var lc int for err == nil { _, err = r.ReadString('\n') if err == nil { // HLerrhandling lc++ // HLerrhandling } // HLerrhandling } return lc, nil } // END OMIT func main() { flag.Parse() for _, path := range flag.Args() { lc, err := lineCount(path) if err != nil { fmt.Errorf("failed to count lines in %q: %s", path, err) } fmt.Printf("%d\t%s\n", lc, path) } }