Go语言提供了多种用于实现数据输入、输出的函数,这些函数在fmt包中实现。在输入、输出数据时,首先要导入fmt包,导入语句为:
import "fmt"
数据输出(Data Output),是计算机对各类输入数据进行加工处理后,将结果以用户所要求的形式输出到标准输出设备上(比如显示器)。在Go标准库的fmt包中,有三种标准输出函数: Print()、Printf()和Println()。
Print()函数的功能是按照系统默认格式字符串和参数表,生成一个打印字符串,然后再将其输出到标准输出设备上,输出时会在操作数之间自动加上空格。Print()函数执行后会返回输出的字节数或错误类型,Print()函数原型定义如下:
func Print(a .... interface{}) (n int,err error)
Print()函数不支持格式化输出,所以像回车、换行这些操作要用户自己来控制。
Println()函数和Print()函数的功能基本一致,不同的是Println()函数会在输出结束后再自动输出一个换行,Println()函数的原型定义如下:
func Println(a ...interface{}) (n int,err error)
前面介绍的Print()和Println()函数都是采用默认格式输出数据,如果要按照更灵活的格式输出数据就要使用Printf()函数,Printf()函数的原型定义如下:
func Printf(format string, a ...interface{}) (n int, err error)
ftm包中的Printf()函数类似于C语言的printf()函数,会按照格式化(format)字符串将操作数格式化输出到标准输出设备上,Printf()函数也会返回输出的字节数和错误类型。
Go语言提供的格式化字符串类型非常丰富,其含义和作用如表3-1所示。
数据输入(DataInput)是当程序在运行过程中,将系统外部原始数据通过标准输入设备传输给系统内部,并将这些数据以外部格式转换为系统便于处理的内部格式的过程,其方式与使用的输人设备密切相关(比如键盘)。在Go标准库fmt包中,有三种标准输入函数Scan()、Scanf()和Scanln()。
Scan()函数的功能是从标准输入设备读取数据,并将使用空格分割的连续数据顺序存入到参数里,换行也将被视为空格。Scan()函数调用成功,返回正确读取的参数的数量n;如果少于要求提供的参数数量,函数返回err并报告错误原因。
Scan() 函数的原型定义如下:
func Scan(a ...interface{}) (n int, err error)
Scanln()函数的功能是从标准输入设备读取数据,并将使用空格分割的连续数据顺序存入到参数里。Scanln()函数调用成功,返回正确读取的参数的数量n;如果少于要求提供的参数数量,函数返回err并报告错误原因。
从上面的说明可以看出,Scanln()函数的功能类似于Scan()函数,但Scanln()函数会在读取到换行符时终止录入数据,并且在存入最后一条数据时必须有换行或结束符。
Scanln()函数的原型定义如下:
func Scanln(a ...interface{}) (n int, err error )
Scanf()函数的功能是按照格式化字符从标准输入设备读取数据,并将所读取的数据顺序存入到参数里。Scanf()函数调用成功,返回正确读取的参数的数量n;如果少于要求提供的参数数量,函数返回err并报告错误原因。
Scanf() 函数的原型定义如下:
func Scanf(format string,a ...interface{}) (n int, err error)