课后作业:
- 简化go输入:修改第一个例子猜谜游戏里面的最终代码,使用fmt. Scanf来简化代码实现。
作业一:
原代码步骤:
reader := bufio.NewReader(os.Stdin)
:使用bufio.NewReader将输入转化为流的形式input, err := reader.ReadString('\n')
:通过reader.ReadString读取流中数据(到换行符'\n'为止)- 由于该操作会把最后的换行符一起读取到input里,需要用
input = strings.Trim(input, "\r\n")
把末尾的换行符删去。 - 此时的input变量类型为strings(字符串),为了能够进行猜字数字的比较,需要使用
guess, err := strconv.Atoi(input)
把字符串转换为整数。
可以看到上述过程使用了多个函数进行读取及转换,可采用fmt.scanf函数直接读取数字 go零基础的同学首先需要了解go中scanf用法(参考资料:deepinout.com/go/go-examp… )
可以看到读取整数可以用到fmt.Scanf("%d", &age)
,于是我们将代码优化为如下
func main() {
...//省略不改动的代码
fmt.Println("Please input your guess")
var guess int //定义guess变量为int
for {
_,err:=fmt.Scanf("%d\n",&guess) //定义修改为fmt.Scanf输入
...//省略代码
}
}