package main import ( "fmt" "io/ioutil" "os" "sort" ) // --------------------------------------------------------- // EXERCISE: Sort to a file with ordinals // // Use the previous exercise: Append #4 // // This time, print the sorted items with ordinals // (see the expected output) // // // EXPECTED OUTPUT // // go run main.go // Send me some items and I will sort them // // go run main.go orange banana apple // // cat sorted.txt // 1. apple // 2. banana // 3. orange // // // HINTS // // ONLY READ THIS IF YOU GET STUCK // // + You can use strconv.AppendInt function to append an int // to a byte slice. strconv contains a lot of functions for appending // other basic types as well. // // + You can append individual characters to a byte slice using // rune literals: // // var slice []byte // slice = append(slice, 'h', 'i', ' ', '!') // fmt.Printf("%s\n", slice) // // Above code prints: hi ! // --------------------------------------------------------- func main() { items := os.Args[1:] if len(items) == 0 { fmt.Println("Send me some items and I will sort them") return } sort.Strings(items) var data []byte for _, s := range items { data = append(data, s...) data = append(data, '\n') } err := ioutil.WriteFile("sorted.txt", data, 0644) if err != nil { fmt.Println(err) return } }