#不不积跬步,无以至千里;不积小流,无以成江海 ####Printf 格式化输出 ####通用占位符: ####v 值的默认格式。 ####%+v 添加字段名(如结构体) ####%#v 相应值的Go语法表示 ####%T 相应值的类型的Go语法表示 ####%% 字面上的百分号,并非值的占位符 ####布尔值: ####%t true 或 false ####整数值: ####%b 二进制表示 ####%c 相应Unicode码点所表示的字符 ####%d 十进制表示 ####%o 八进制表示 ####%q 单引号围绕的字符字面值,由Go语法安全地转义 ####%x 十六进制表示,字母形式为小写 a-f ####%X 十六进制表示,字母形式为大写 A-F ####%U Unicode格式:U+1234,等同于 "U+%04X" ##浮点数及复数: ####%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78 ####%e 科学计数法,例如 -1234.456e+78 ####%E 科学计数法,例如 -1234.456E+78 ####%f 有小数点而无指数,例如 123.456 ####%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 ####%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出 ##字符串和bytes的slice表示: ####%s 字符串或切片的无解译字节 ####%q 双引号围绕的字符串,由Go语法安全地转义 ####%x 十六进制,小写字母,每字节两个字符 ####%X 十六进制,大写字母,每字节两个字符 ##指针: ####%p 十六进制表示,前缀 0x ##这里没有 'u' 标记。若整数为无符号类型,他们就会被打印成无符号的。类似地,这里也不需要指定操作数的大小(int8,int64)。
##对于%v来说默认的格式是: ####bool: %t ####int, int8 etc.: %d ####uint, uint8 etc.: %d, %x if printed with %#v ####float32, complex64, etc: %g ####string: %s ####chan: %p ####pointer: %p
type Kind uint 反射底层类型 ##const ( ##Invalid Kind = iota // 非法类型 Bool // 布尔型 Int // 有符号整型 Int8 // 有符号8位整型 Int16 // 有符号16位整型 Int32 // 有符号32位整型 Int64 // 有符号64位整型 Uint // 无符号整型 Uint8 // 无符号8位整型 Uint16 // 无符号16位整型 Uint32 // 无符号32位整型 Uint64 // 无符号64位整型 Uintptr // 指针 Float32 // 单精度浮点数 Float64 // 双精度浮点数 Complex64 // 64位复数类型 Complex128 // 128位复数类型 Array // 数组 Chan // 通道 Func // 函数 Interface // 接口 Map // 映射 Ptr // 指针 Slice // 切片 String // 字符串 Struct // 结构体 UnsafePointer // 底层指针 )