type
status
date
slug
summary
tags
category
icon
password
AI summary
Go语言标准库之fmt
fmt
包是 Go 语言中用于格式化输入和输出的标准库。它提供了丰富的函数来处理丰富的数据格式化需求。本文档将从基础使用到高级操作,综合述明 fmt
包的功能和应用场景。1. 基础输出
fmt
包提供了一系列的输出函数:1.1 Print
系列
fmt.Print
: 输出数据,不含自动换行。
fmt.Println
: 输出数据,并自动换行。
fmt.Printf
: 格式化输出。
示例
2. 基础输入
fmt
包也提供输入功能:2.1 Scan
系列
fmt.Scan
: 接收用户输入,按空格分割值。
fmt.Scanln
: 接收用户输入,按行分割值。
fmt.Scanf
: 格式化接收输入。
示例
3. 基础输入
3.1 Sprint
系列
fmt.Sprint
: 转化字符串。
fmt.Sprintf
: 格式化转化字符串。
fmt.Sprintln
: 转化字符串并换行。
示例
4. 格式化字符
Go 语言提供了丰富的格式化字符:
4.1 基础格式化字符
字符 | 描述 | 示例 |
%v | 值 | fmt.Printf("%v", 123) |
%T | 值的类型 | fmt.Printf("%T", 123) |
%d | 十进制整数 | fmt.Printf("%d", 123) |
%f | 浮点数 | fmt.Printf("%f", 123.45) |
%s | 字符串 | fmt.Printf("%s", "Go") |
%p | 指针 | fmt.Printf("%p", &x) |
4.2 特殊格式化
字符 | 描述 | 示例 |
%+v | 包含字段信息的结构体 | fmt.Printf("%+v", struct) |
%#v | 代码形式的结构体 | fmt.Printf("%#v", struct) |
%% | 输出百分号 | fmt.Printf("%%") |
5. 格式化输出的高级用法
5.1 宽度和精度控制
- 指定宽度: 使用数字指定最小宽度,例如
%5d
表示至少占5个字符宽度。
- 指定精度: 对于浮点数,可以使用
%.2f
指定小数点后两位。
示例
5.2 对齐和填充
- 默认右对齐,使用
可以左对齐。
- 用
0
填充空白,例如%05d
。
示例
6. 错误处理输出
fmt
包中的 Errorf
函数可以用于生成格式化的错误:示例
7. 常见问题和注意事项
7.1 多余的参数
fmt.Printf
中提供的参数数量可以超过格式化字符串中的占位符,未使用的参数会被忽略:7.2 参数不足
如果占位符多于提供的参数,会引发运行时错误:
8. 作业练习
- 编写一个程序,读取用户的姓名和年龄,并格式化输出:
- 输入示例:
Alice 30
- 输出示例:
Hello, Alice! You are 30 years old.
- 使用
fmt.Printf
格式化输出一个浮点数,要求保留 3 位小数并右对齐,占 10 个字符宽度。
- 编写一个函数,接受多个参数并使用
fmt.Sprintf
返回格式化的字符串,尝试组合多种格式化字符。
- 作者:IT小舟
- 链接:https://www.codezhou.top/article/fmt
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。