package main import ( "flag" "fmt" "strings" ) func main() { var all bool flag.BoolVar(&all, "all", false, "reveal the code words of all the letters in the English alphabet.") flag.Parse() if all { fmt.Print(phoneticLetters(fullAlphabet())) } else { fmt.Print(phoneticLetters(flag.Args()...)) } } // phoneticLetters returns a string of all the code words for the given set of letters. func phoneticLetters(input... string) string { var characters string for i := range input { characters = characters + strings.ToLower(input[i]) } b := strings.Builder{} for _, r := range characters { switch r { case 'a': b.WriteString("A - Alpha\n") case 'b': b.WriteString("B - Bravo\n") case 'c': b.WriteString("C - Charlie\n") case 'd': b.WriteString("D - Delta\n") case 'e': b.WriteString("E - Echo\n") case 'f': b.WriteString("F - Foxtrot\n") case 'g': b.WriteString("G - Golf\n") case 'h': b.WriteString("H - Hotel\n") case 'i': b.WriteString("I - India\n") case 'j': b.WriteString("J - Juliet\n") case 'k': b.WriteString("K - Kilo\n") case 'l': b.WriteString("L - Lima\n") case 'm': b.WriteString("M - Mike\n") case 'n': b.WriteString("N - November\n") case 'o': b.WriteString("O - Oscar\n") case 'p': b.WriteString("P - Papa\n") case 'q': b.WriteString("Q - Quebec\n") case 'r': b.WriteString("R - Romeo\n") case 's': b.WriteString("S - Sierra\n") case 't': b.WriteString("T - Tango\n") case 'u': b.WriteString("U - Uniform\n") case 'v': b.WriteString("V - Victor\n") case 'w': b.WriteString("W - Whiskey\n") case 'x': b.WriteString("X - Xray\n") case 'y': b.WriteString("Y - Yankee\n") case 'z': b.WriteString("Z - Zulu\n") } } return b.String() } // fullAlphabet returns a string of all the letters in the alphabet. func fullAlphabet() string { return "a b c d e f g h i j k l m n o p q r s t u v w x y z" }