Go 语言中的格式化输出
fmt.Printf
中格式化说明符 汇总
%v
%v
代表使用类型的默认输出格式的标识符, 意味着可以使用 %v
打印任何类型,go 语言中的万能格式符所以可以使用 %v
来表示复数
速查表
格式 | 说明 | |
---|---|---|
%d |
格式化整数 | |
%0d |
用于规定输出定长的整数 其中开头的数字 0 是必须的 | |
%g |
格式化浮点型 | |
%n.mg |
用于表示数字 n 并精确到小数点后 m 位,除了使用 g 之外,还可以使用 e 或者 f | |
%f |
格式化浮点数 | |
%X , %x |
格式化 16 进制表示的数字 | |
%b |
位的格式化标识符 | |
%e |
科学计数表示法 | |
%t |
格式化布尔型 | |
%c |
格式化字符 | |
%s |
格式化字符串 | |
%U , %u |
Unicode,格式为 U+hhhh 的字符串 | |
%p |
格式化指针 | |
%v |
使用类型的默认输出格式的标识符 |
调试相关格式化说明符
格式 | 说明 |
---|---|
%T |
打印某个类型的完整说明 |
%#v |
打印包括字段和限定类型名称在内的实例的完整信息 |
%+v |
打印包括字段在内的实例的完整信息 |
程序
package main
import "fmt"
func main() {
//int
var v1 int = 100
fmt.Printf("%d \n" , v1) // 输出 100
fmt.Printf("%v \n" , v1) // 输出 100
fmt.Printf("%05d \n" , v1) // 输出 00100
//bool
var v2 bool = false
fmt.Printf("%t \n", v2) //输出 fasle
fmt.Printf("%s \n", v2) // 输出 %!s(bool=false)
// char
var ch int = '\u0041'
var ch2 int = '\u03B2'
var ch3 int = '\u00101234'
fmt.Printf("%d - %d - %d.", ch, ch2, ch3) // integer,输出 65 - 946 - 1053236
fmt.Printf("%c - %c - %c.", ch, ch2, ch3) // character,输出 A - β - r
fmt.Printf("%X - %X - %X.", ch, ch2, ch3) // UTF-8 bytes,输出 41 - 3B2 - 101234
fmt.Printf("%U - %U - %U", ch, ch2, ch3) // UTF-8 code point,输出 U+0041 - U+03B2 - U+101234
g := func(i int) { fmt.Printf("%d ", i) }
fmt.Printf(" g is of type %T and has value %v\n", g, g)
// g is of type func(int) and has value 0x488e90 %T 打印是变量类型(函数), %v 打印的是(函数)地址
}
注意: 单个字符可以是 int8 (byte 别名) , int16 , 或者int, 因为使用空间最大的单个字符编码 Unicode 4个字节就够了 , 所以4字节 int 可以包含所有的编码格式了, ASCII 码 int8 就够了
累了 ,先写这么多吧,
本作品采用《CC 协议》,转载必须注明作者和本文链接