概述
fmt 包实现了类似 C 语言 printf 和 scanf 的格式化。
主要分为两个部分:
- 向外输出内容
- 获取输入内容
向外输出
Print 系列函数
功能:将内容输出到系统的标准输出
主要有以下三个:
- Print 函数直接输出内容
- Printf 函数支持格式化输出字符串
- Println 函数会在输出内容的结尾添加一个换行符
func main() {
fmt.Print("在终端打印该信息。")
name := "沙河小王子"
fmt.Printf("我是:%s\n", name)
fmt.Println("在终端打印单独一行显示")
}
Fprint 系列函数
主要功能:
- 将内容输出到一个
io.Writer
接口类型的变量w
中,只要满足io.Writer
接口的类型都支持写入 - 我们通常用这个函数往文件中写入内容
和 Print 的一样,也有三个函数:
- Fprint
- Fprintf
- Fprintln
func main() {
// 向标准输出写入内容
fmt.Fprintln(os.Stdout, "向标准输出写入内容")
// 向打开的文件句柄中写入内容
fileObj, err := os.OpenFile("./xx.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("打开文件出错,err:", err)
return
}
name := "沙河小王子"
fmt.Fprintf(fileObj, "往文件中写如信息:%s", name)
}
Sprint 系列函数
主要功能:
- 把传入的数据生成并返回一个字符串
- 也就说,返回一个格式化的字符串给变量
三个函数:
- Sprint
- Sprintf
- Sprintln
func main() {
s1 := fmt.Sprint("沙河小王子")
name := "沙河小王子"
age := 18
s2 := fmt.Sprintf("name:%s,age:%d", name, age)
s3 := fmt.Sprintln("沙河小王子")
// 沙河小王子 name:沙河小王子,age:18 沙河小王子
fmt.Println(s1, s2, s3)
}
格式化占位符
*printf 系列函数都支持 format 格式化参数
- %v,值的默认格式表示
- %+v,类似 %v,但输出结构体时会添加字段名
- %#v,值的 Go 语法表示
- %T,打印值的类型
- %%,百分号
评论 (0)