32 lines
489 B
Go
32 lines
489 B
Go
|
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
|
||
|
}
|