Command Line Flags/Arguments

hmm, I think, that it still prints Usage() when no flag value
my code using FlagSet

package main

import (
	"flag"
	"fmt"
	"os"
)

type Flags struct {
	name *string
}

func parse() *Flags {
	result := &Flags{}
	fs := flag.NewFlagSet("arguments", flag.ContinueOnError)
	result.name = fs.String("i", "default", "enter app name")
	if err := fs.Parse(os.Args[1:]); err != nil {
		fmt.Println(err)
		// return result
	}

	if *result.name == "" {
		fmt.Println("you must enter something")
	}

	return result
}

func main() {
	f := parse()
	fmt.Println(*f.name)
}
`