上篇文章对Go语言做了一个简述,并简单写了一下关于包管理和变量声明的语法。这篇文章将简要讲述Go语言中的输入输出和格式字符。
一、输入输出
使用输入输出函数,需要先引入fmt包 ,即 import "fmt"
1)输入
Go语言中常用的输入有三种:
fmt.Scan,以空格为分隔符扫描数据,换行符将被视为空白符,且Scan在没有扫描完所有变量之前是不会结束扫描的,如果读取的条目比提供的参数少,会返回一个错误报告原因。
fmt.Scanf,类似于C语言中的scanf,且该函数在输入时要按照数据格式输入指定类型,才会存入相应变量。换行符被视为结束输入,未输入的变量会按照默认值处理。
fmt.Scanln,类似于fmt.Scan,但该函数遇到换行符会结束,没有输入的变量会按照默认值处理。
2)输出
常用的输出函数也有三个:
fmt.Print,如果输出的变量中相邻的两个参数都不是字符串类型,那么会自动在两参数中间输出一个空格。
fmt.Printf,该函数会根据format参数生成格式化的字符串并输出。
fmt.Println,该函数会在相邻的输出参数之间添加空格并在输出结尾换行。
二、格式字符
fmt包中实现了类似于C语言中printf和scanf的格式化,但更为简单。常用的占位符有五个:
%v,默认格式表示
%+v,类似%v,但输出结构体时会添加字段名
%#v,值的Go语言表示
%T,输出参数的类型
%%,输出百分号
示例:
func main() {
str := struct{ code string }{"Hello,World"}
var s = "Hello,World"
fmt.Printf("%v\n", s)
fmt.Printf("%v\n", str)
fmt.Printf("%+v\n", s)
fmt.Printf("%+v\n", str)
fmt.Printf("%#v\n", s)
fmt.Printf("%#v\n", str)
fmt.Printf("%T\n", s)
fmt.Printf("%T\n", str)
fmt.Printf("100%%\n")
}
输出结果: