Go语言编程动手练习丨编程实现人机交互

本文使用Go语言的内置包fmt实现数据输入和输出功能。
内置包fmt的Printf()函数将数据以字符串格式输出,它的语法定义如下:
Printf(format string, a ...interface{}) (n int, err error)
语法说明
1)参数format以字符串类型表示,数据以双引号“""”或反引号“``”表示,并支持字符串格式化,即在字符串里面设置变量,使数据能随着变量值的变化而变化。
2)参数a是不固定参数,即允许设置0或多个参数;参数类型为空接口,即支持任意数据类型的数据,主要为字符串格式化提供变量设置。
3)返回值n为整型,代表输出字符串的长度。
4)返回值error代表函数执行过程中出现的异常信息。
除了Printf()函数之外,内置包fmt还定义了其他输出函数:Sprintf()、Println()和Sprintln(),函数说明如下:
1)Sprintf()与Printf()的参数相同,返回值为字符串类型,它将输出字符串作为函数返回值。
2)Println()只要参数a,它是不固定参数,参数类型为空接口,允许输出0个或多个数据,返回值n和error分别代表输出数据的长度和异常信息。
3)Sprintln()与Println()的参数相同,返回值为字符串类型,输出数据以字符串类型作为函数返回值。
内置包fmt的Scanln()函数允许用户在程序命令行输入数据,它的语法定义如下:
Scanln(a ...interface{}) (n int, err error)
语法说明
1)参数a是不固定参数,即允许设置0或多个参数;参数类型为空接口,即支持任意数据类型的数据,它用于存储用户输入的数据。
2)返回值n为整型,代表输入字符串的长度。
3)返回值error代表函数执行过程中出现的异常信息。
除了Scanln()函数之外,内置包fmt还定义了其他输入函数:Scan()、Scanf()、Sscan()和Sscanln()等,它们的功能和使用方式都是大同小异,本书就不再详细讲述。
了解了Go语言的输入和输出函数后,下一步使用输入和输出函数实现人机交互功能,简单来说就是用户按照提示输入数据,程序就输出对应的内容,实现过程如下:
package main
import "fmt"
func main() {
// 定义变量name、age、addr
// 用于存储用户输入的数据
var name, age, addr string
// 输出操作提示
fmt.Printf("请输入你的名字:\n")
// 存储用户输入的数据
fmt.Scanln(&name)
// 输出操作提示
fmt.Printf("请输入你的年龄:\n")
// 存储用户输入的数据
fmt.Scanln(&age)
// 输出操作提示
fmt.Printf("请输入你的居住地:\n")
// 存储用户输入的数据
fmt.Scanln(&addr)
// 输出用户输入的所有数据
fmt.Printf("你的名字是:%v,年龄:%v,居住地:%v",name,age,addr)
}
在GoLand中运行上述代码,在GoLand的Run窗口按照程序提示输入数据并按回车键完成当前输入,输入数据在Run窗口无法显示,数据直接存储在变量name、age和addr中,只有通过输出函数输出变量值才能看到用户输入的数据,如图所示。

本文内容摘自黄永祥《Go语言编程从入门到实践》,了解更多Go语言编程知识请购买正版图书。

http://product.dangdang.com/29413927.html
https://item.jd.com/13184903.html