官术网_书友最值得收藏!

The addCLA.go program revisited

This subsection will present an improved version of the addCLA.go program we developed in the previous chapter, to make it able to handle any kind of user input. The new program will be called addCLAImproved.go, but instead of presenting its full Go code, you will only see the differences between addCLAImproved.go and addCLA.go using the diff(1) command-line utility:

$ diff addCLAImproved.go addCLA.go
13,18c13,14
<           temp, err := strconv.Atoi(arguments[i])
<           if err == nil {
<                 sum = sum + temp
<           } else {
<                 fmt.Println("Ignoring", arguments[i])
<           }
---
>           temp, _ := strconv.Atoi(arguments[i])
>           sum = sum + temp

What this output basically tells us is that the last two lines of code, which can be found in addCLA.go and begin with the > character, were replaced by the lines of code that begin with the < character in addCLAImproved.go. The remaining code of both files is exactly the same.

The diff(1) utility compares text files line by line and is a handy way of spotting code differences between different versions of the same file.

Executing addCLAImproved.go will generate the following kind of output:

$ go run addCLAImproved.go
Sum: 0
$ go run addCLAImproved.go 1 2 -3
Sum: 0
$ go run addCLAImproved.go 1 a 2 b 3.2 @
Ignoring a
Ignoring b
Ignoring 3.2
Ignoring @
Sum: 3

So, the new and improved version works as expected, behaves reliably, and allows us to differentiate between valid and invalid input.

主站蜘蛛池模板: 隆德县| 广德县| 北安市| 滨海县| 泾阳县| 德州市| 平凉市| 肥东县| 随州市| 南丹县| 台中市| 呼伦贝尔市| 青河县| 海伦市| 乾安县| 盐池县| 阿勒泰市| 赣州市| 福清市| 奉新县| 巢湖市| 莆田市| 佳木斯市| 海安县| 开鲁县| 民勤县| 马山县| 建瓯市| 宁城县| 商南县| 出国| 瑞丽市| 即墨市| 宁蒗| 连州市| 襄汾县| 凌云县| 阿鲁科尔沁旗| 广平县| 屯昌县| 玉龙|