package main import ( "fmt" "os" "io" ) func main() { osArgs := os.Args[1:] if err := greet(os.Stdout, osArgs); err != nil { fmt.Printf("ERROR: %s.\n", err) } } func greet(w io.Writer, n []string) error { var name string if len(n) > 1 { return fmt.Errorf("unexpected number of arguments passed to the greeter: want 0 or 1 argument, got %d", len(n)) } else if len(n) == 0 { name = "World" } else { name = n[0] } fmt.Fprintf(w, "Hello, %s!\n", name) return nil }