The principal idea behind the code of the wc.go program is that you can read a text file line by line until there is nothing left to read. For each line you read, you find out the number of characters and the number of words it has. As you need to read your input line by line, the use of bufio is preferred instead of the plain io because it simplifies the code. However, trying to implement wc.go on your own using io would be a very educational exercise.
But first, you will see that the wc(1) utility generates the following output:
$ wc wc.go cp.go 68 160 1231 wc.go 45 112 755 cp.go 113 272 1986 total
So, if wc(1) has to process more than one file, it automatically generates summary information.
In Chapter 9, Goroutines - Basic Features, you will learn how to create a version of wc.go using Go routines. However, the...