/* * Unique word count in Go Usage: go run counts.go < file * @author gtowell * created: July 20, 2021 * updated: August 2023 */ package main import ( "bufio" "fmt" "os" ) func main() { counts := make(map[string]int) input := bufio.NewScanner(os.Stdin) input.Split(bufio.ScanWords) // split on whitespace ... the default is split on line for input.Scan() { counts[input.Text()]++ } fmt.Printf("%d\n", len(counts)) fmt.Printf("%v\n", counts) }