Golang的交互模式进阶-读取用户的输入

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

  读写数据除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出。

 

一.从控制台读取输入

  我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数。具体代码如下

 

二.从缓冲读取输入

  bufio.NewReader() 构造函数的签名为: func NewReader(rd io.Reader) *Reader。该函数的实参可以是满足 io.Reader 接口的任意对象,函数返回一个新的带缓冲的 io.Reader 对象,它将从指定读取器(例如 os.Stdin )读取内容。返回的读取器对象提供一个方法 ReadString(delim byte) ,该方法从输入中读取内容,直到碰到 delim指定的字符,然后将读取到的内容连同 delim 字符一起放到缓冲区。ReadString 返回读取到的字符串,如果碰到错误则返回 nil 。如果它一直读到文件结束,则返回读取到的字符串和 io.EOF 。如果读取过程中没有碰到 delim 字符,将返回错误 err != nil 。

 

三.从键盘读取输入

   使用了 switch 语句来判断用户输入的字符串。

 

四.小试牛刀

  以下是一个和用户进行交互的程序,将用户输入的字符串和数字进行打印,相当于一个echo的一个功能,具体需要打印的类型需要自行修改。