Go语言标准库-fmt



1. fmt包

  • fmt包实现了类似c语言的printfscanf函数,实现格式化I/O函数。

1.1. printf函数

1.1.1. 示例类型和变量

1
2
3
4
5
6
7
type Human struct{
    Name string
}

func main(){
    var people = Human{Name:"zhangsan"}
}

1.1.2. 普通占位符

占位符 说明 举例 输出
%v 相应值的默认格式 Printf("%v",people) {zhangsan}
%+v 打印结构体时,会添加字段名显示 Printf("%+v",people) {Name:zhangsan}
%#v 相应值的Go语法表示 Printf("%#v",people) main.Human{Name:zhangsan}
%T 相应值*类型*的Go语法表示 Printf("%T",people) main.Human
%% 表示输出一个%(类似转义符) Printf("%%") %

1.1.3. 布尔占位符

占位符 说明 举例 输出
%t 输出truefalse Printf("%t",true) true

1.1.4. 整数占位符

占位符 说明 举例 输出
%b 二进制表示 Printf("%b",5) 101
%d 十进制表示 Printf("%d",0x12) 18
%o 八进制表示 Printf("%o",10) 12
%x 小写的十六进制表示 Printf("%x",13) d
%X 大写的十六进制表示 Printf("%X",13) D

1.1.5. 浮点数和复数的组成部分(实部和虚部)

占位符 说明 举例 输出
%b 打印整型的二进制 Printf("%b",10) 1010
%e 科学计数法,例如:-1234.456e+78 Printf("%e",11.909) 1.190900e+01
%E 科学计数法,例如:-1234.456E+78 Printf("%e",11.909) 1.190900E+01
%f 有小数点后面补足0 Printf("%f",10.2) 10.200000
%g 还原%e%E输出的科学计数法类型的内容 Printf("%g",1.190900E+01) 11.909

1.1.6. 字符串与字节切片

占位符 说明 举例 输出
%U Unicode格式:U+1234,等同于U+%04X Printf("%U",0x4E2D) U+4E2D
%c 相应Unicode码所表示的字符 Printf("%c",0x4E2D)
%s 输出字符串表示(接受string[]byte类型) Printf("%s",[]byte("Go语言")) Go语言
%q 单引号包括的字符字面值,由Go语法安全转义(参数为Unicode编码时) Printf("%q",0x4E2D) '中'
%q 双引号包括的字符字面值,由Go语法安全转义(参数为string) Printf("%q","hehe") hehe
%x 值为字符串时,输出字符的编码(小写) Printf("%x","Go语言") 476fe8afade8a880
%X 值为字符串时,输出字符的编码(大写) Printf("%X","Go语言") 476FE8AFADE8A880

1.1.7. 指针

占位符 说明 举例 输出
%p 输出带0x的指针 Printf("%p",&people) 0xc042040400
%#p 输出不带0x的指针 Printf("%#p",&people) c042040400