var a int = 100 var b bool var c byte = 'a' //c底层存的是整数,原样输出 fmt.Printf("a:%v\n", a) fmt.Printf("b:%v\n", b) fmt.Printf("c:%v\n", c)
输出结果:
答:100
b:假
c:97
2.%+v:打印结构体时,会添加字段名称。
type student struct { Name string Age int } stu := student{ Name: "lily", Age: 25, } fmt.Printf("stu:%+v\n", stu)
输出结果:
斯图:{姓名:莉莉 年龄:25}
3.%#v:对应值的Go语法表示。
c是字节类型,底层存储的是整数。 当输出%#v时,输出为十六进制。
var c byte = 'a' fmt.Printf("c:%#v\n", c)
输出结果:
c:0x61
4.%T:对应类型的表示。 变量的数据类型将直接输出。
d := 'b' fmt.Printf("d:%T\n", d)
输出结果:
d:int32
5.%t:如果知道是bool类型,可以直接用%t打印。 如果您不知道其类型,可以使用 %v。
var b bool fmt.Printf("b:%t\n", b)
输出结果:
b:假
6.%b:二进制表示
fmt.Printf("%b\n", 100)
输出结果:
7.%q:用双引号括起来的字符串文字,通过 go 语法安全转义。 意思是把双引号一起输出。 %s 只输出字符串中的内容,不加“”
fmt.Printf("%s\n", "this is a test") fmt.Printf("%q\n", "this is a test")
输出结果:
这是一个测试
“这是一个测试”
8.%p:获取地址
var a int = 100 fmt.Printf("%p\n", &a)
输出结果:
9.%%:逃脱
fmt.Printf("90%%\n")
输出结果:
90%
10.%f:浮点输出
fmt.Printf("%f\n", 199.22) fmt.Printf("%0.3f\n", 199.22) //保留小数点后3位
输出结果:
199.
199.220
11.%x:十六进制输出
fmt.Printf("%x\n", 1298410)
输出结果:
12.:将整数打印为字符串格式
a本身是int类型,str是类型,可以将int转成
var a int = 100 str := fmt.Sprintf("%d", a) fmt.Printf("%v\n",reflect.TypeOf(str)) fmt.Printf("str:%q\n", str)
输出结果:
字符串类型:
字符串:“100”
之前对格式化输出没有很全面的了解。 这次通过学习和代码实践,我已经能清晰的区分并正确使用了。
好记性不如烂笔。 做个记录,以后记忆模糊的时候再看。