首先,我对第一天的第二小节的内容进行一下总结:
第二小节主要针对三个项目实例进行讲解,我由于时间关系只对于第一个项目代码进行了研究以及输出验证
`import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
)`//其实刚开始我还不理解这个import的东西是干什么用的后来上网百度才了解,原来是导入包的,这个包其实相当于库,里面有许多库函数,可以直接调用,非常方便。
`func main() { // main函数,是程序执行的入口 maxNum := 100 //rand.Seed(time.Now().UnixNano()) secretNumber := rand.Intn(maxNum) //fmt.Println("The secret number is", secretNumber)
fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("An error occured while reading input. Please try again", err)
continue
}
input = strings.TrimSuffix(input, "\r\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input. Please enter an integer value")
continue
}
fmt.Println("You guess is", guess)
if guess > secretNumber {
fmt.Println("Bigger")
} else if guess < secretNumber {
fmt.Println("Smaller")
} else {
fmt.Println("Correct!")
break
}
}
}` 对于这部分内容,其实详细理解起来也挺容易的。就是正常的C语言的内容外加上一些逻辑部分组成的。 比较难的就是那个生成随机数方法。大家可以多理解一下应该是没有问题的。
还有就是这节课的代码不能完全照搬老师上课所提供的代码,因为在“input = strings.TrimSuffix(input, "\r\n")”这一部分中"\r"是我后期加入的。应该是只有Windows系统才会出现这种错误。这是由于在字符串转化为数字的过程中,它会默认带上“\r\n”因此我们输入数字进去是所输出的结果是非法的。
我对本节课的理解就是:本节课的小实践让我们收获颇丰,一是让我们更加了解了Go语言,巩固了基础,二是让我们增加了对Go语言写一个小项目的经验,让我们有了学习下去的欲望!