一、输入输出
1.1 格式化输出
- 在 Go 中,格式化的输入与输出,都需要使用到格式化占位符。 golang格式化输出:https://blog.csdn.net/hanjinjuan/article/details/124912572
常见占位符
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%T | 类型占位符 | ||
%v | 值占位符 | ||
%d | 整数占位符 | ||
%f | 浮点占位符 | ||
%c | 字符占位符 | ||
%s | 字符串的占位符 |
布尔占位符
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%t | Printf("%t", true) | true | 输出true 或 false |
整数占位符
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%b | Printf("%b", 4) | 二进制表示 | |
%c | Printf("%c", 0x82d7) | 相应Unicode码点所表示的字符 | |
%d | Printf("%d", 0x12) | 十进制表示 | |
%o | Printf("%o", 10) | 八进制表示 | |
%q | Printf("%q", 0x4E2D) | 单引号围绕的字符字面值,由Go语法安全地转义 | |
%x | Printf("%x", 13) | 十六进制表示,字母形式为小写 a-f | |
%X | Printf("%X", 13) | 十六进制表示,字母形式为大写 A-F | |
%U | Printf("%U", 0x4E2D) | Unicode格式:U+1234,等同于 “U+%04X” |
浮点数
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%b | fmt.Printf("%b", 68.10) | 4792111478498918p-46 | 无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat |
%e | fmt.Printf("%e", 68.10) | 6.810000e+01 | 科学计数法,如-1234.456e+78 |
%E | fmt.Printf("%E", 68.10) | 6.810000E+01 | 科学计数法,如-1234.456E+78 |
%f | fmt.Printf("%f", 68.10) | 68.100000 | 有小数部分但无指数部分,如123.456 |
%F | fmt.Printf("%F", 68.10) | 68.100000 | 等价于%f |
%g | fmt.Printf("%g", 68.10) | 68.1 | 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出) |
%G | fmt.Printf("%G", 68.10) | 68.1 | 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出) |
字符串
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%s | fmt.Printf("%s", “I’m a girl”) | I’m a girl | 字符串或切片的无解译字节 |
%q | fmt.Printf("%q", “I’m a girl”) | “I’m a girl” | 双引号围绕的字符串,由Go语法安全地转义 |
%x | fmt.Printf("%x", “I’m a girl”) | 49276d2061206769726c | 十六进制,小写字母,每字节两个字符 |
%X | fmt.Printf("%X", “I’m a girl”) | 49276D2061206769726C | 十六进制,大写字母,每字节两个字符 |
结构体占位符
|
|
占位符 | 代码示例 | 代码输出 | 功能 |
---|---|---|---|
%v | Printf("%v", people) | {xiandanhuang} | 获取数据的值 |
%+v | Printf("%+v", people) | {Name:xiandanhuang} | 获取数据的值,如果结构体,会携带字段名 |
%#v | Printf("#v", people) | main.Human{Name:“xiandanhuang”} | 获取数据的值,如果是结构体,会携带结构体名和字段名 |
%T | Printf("%T", people) | main.Human | 获取数据类型 |
%% | Printf("%%") | % | 字面上的一个百分号 |