| Other flags 其他标记 | ||
| + | 总是输出 数值 的符号 对于 %q 或 %+q 确保是ASCII-only的输出 | fmt.Printf("%+f, %+q", 3.1415926, "Hello 世界") +3.141593, "Hellotu4e16u754c" 注意:中文也是ASCII-only |
| - | 在右边补充空格(字段左对齐时) | |
| # | add leading 0 0 for octal (%#o) 0x for hex (%#x) 0X for hex (%#X) suppress 0x for %#p %+q 输出 a raw (backquoted) string if strconv.CanBackquote returns true; | |
| 空格 | %d数字时,为省略的正号留个空格 %x %X 输出字符串或slice 的16进制 时,字节之间保留空格 | fmt.Printf("%x, %Xn% x, % X", str, str, str, str) 注意:空格使得输出的字节之间由空格 |
| 0 | padding时,0打头,而不是空格打头 输出数值时,正负号依然是最前面(即0补充在正负号之后) | |
| General 一般 | ||
| %v | 以 值的 默认格式输出 struct时,%+v 会额外输出field name | fmt.Printf("%v, %vn", "Hello世界", 99) 注意:%+v 会额外输出field name |
| %#v | 以Go-syntax的格式 输出 值 | var str2 = ` 仰知天文,俯察地理,中晓人和, 注意:str2中包含了tab |
| %T | 以Go-syntax的格式 输出 值的类型 | fmt.Printf("%T, %T, %T", count, f1, stu) int, float64, main.Student |
| %% | 输出百分号。不消耗任何入参 | fmt.Printf("%d%%的财富掌握在%d%%的人手中", 80, 20) 注意:%%不消耗任何入参 |
| The default format for %v 针对不同类型,%v等价于 | ||
| %v 等价于 %t | bool: | |
| %v 等价于 %d | int, int8, uint, uint8 etc.:(即:整数) %#v 则等价于 %f | |
| %v 等价于 %g | float32, complex64, etc.: | |
| %v 等价于 %s | string | |
| %v 等价于 %p | chan | |
| %v 等价于 %p | pointer | |
| String and slice of bytes string,或bytes的切片 | ||
| %s | 输出 string或slice的 非解释字节 | |
| %q | 输出 双引号包裹的,Go-syntax的格式 字符串 | 同 %#v |
| %x | 输出 16进制,小写,每个byte输出两个character | fmt.Printf("%x, %Xn% x, % X", str, str, str, str) 注意:空格使得输出的字节之间由空格 |
| %X | 输出 16进制,大写,每个byte输出两个character | |
| Integer 整数 | ||
| %b | 二进制 | fmt.Printf("%b, %c, %dn%o, %q, %U", 198, 198, 198, 198, 198, 198) 注意:八进制这玩意 根本看不出 是十进制还是八进制 |
| %c | unicode code point所代表的character | |
| %d | 十进制 | |
| %o (小写字母o) | 八进制 | |
| %q | 输出 单引号包裹的,Go-syntax的格式 character | fmt.Printf("%q,%q,%q,%q", 97, 9, 10, 13)
'a','t','n','r'
注意:整数使用%q,就得到单引号包裹的character
|
| %x | 16进制,小写,每个byte输出两个character | |
| %X | 16进制,大写,每个byte输出两个character | |
| %U | unicode格式,例如 U+1234;等价于 U+%04X | |
| Floating-point and complex constituents 浮点数 和 复数部分 | ||
| %b | 指数为 2的指数,无十进制,科学计数法 以 strconv.FormatFloat 的方式使用 'b' 格式 1024.0得到的是4503599627370496p-42 4503599627370496 * 2^(-42) == 1024.0 | |
| %e | 科学计数法 1024.0得到的是 1.024000e+03 -1024.0得到的是 -1.024000e+03 | |
| %E | 科学计数法 1024.0得到的是 1.024000E+03 -1024.0得到的是 -1.024000E+03 | |
| %f | 带小数点,十进制,没有指数 1024.0得到的是 1024.000000 -1024.0得到的是 -1024.000000 | |
| %F | 同%f,两者完全一样 | |
| %g | 大数值时则是%e 小数值时则是%f | |
| %G | 大数值时则是%E 小数值时则是%F | |
| Floating-point Precision 浮点数精度 | ||
| %f | 宽度 默认,精度 默认小数点后6位 | |
| %9f | 宽度 9,精度 默认小数点后6位 | |
| %.2f | 宽度 默认,精度 2 | |
| %9.2f | 宽度 9,精度 2 | |
| %9.f | 宽度 9,精度 0 | |
| Pointer 指针 | ||
| %p | 0x打头,16进制表示法 | |
| Boolean | ||
| %t | 输出 true or false | |



