Go语言格式化输出

Go语言格式化输出

1.%v:相应值的默认格式。如果变量本身为整数就是整数,本身为bool 就是bool。当不知道是什 么类型的数据可以直接使用%v进行输出。
	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)

输出结果:

a:100
b:false
c:97

2.%+v:打印结构体的时候,会添加字段名。
type student struct {
	Name string
	Age  int
}
stu := student{
		Name: "lily",
		Age:  25,
	}
fmt.Printf("stu:%+v\n", stu)

输出结果:

stu:{Name:lily Age: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:false

6.%b:二进制表示
fmt.Printf("%b\n", 100)

输出结果:

1100100

7.%q:双引号围绕的字符串字面值,由go语法安全地转义。意思是将双引号一并输出。%s只输出字符串中的内容,不会添加“ ”
    fmt.Printf("%s\n", "this is a test")
	fmt.Printf("%q\n", "this is a test")

输出结果:

this is a test
“this is a test”

8.%p:取地址
var a int = 100
fmt.Printf("%p\n", &a)

输出结果:

0xc420084008

9.%%:转义
fmt.Printf("90%%\n")

输出结果:

90%

10.%f:浮点数输出
	fmt.Printf("%f\n", 199.22)
	fmt.Printf("%0.3f\n", 199.22) //保留小数点后3位

输出结果:

199.220000
199.220

11.%x:十六进制输出
fmt.Printf("%x\n", 1298410)

输出结果:

13cfea

12.sprintf:将整数打印成字符串的格式

a本身是int类型,str是字符串类型,可以通过sprintf将int的转成字符串

	var a int = 100
	str := fmt.Sprintf("%d", a)
	fmt.Printf("%v\n",reflect.TypeOf(str))
	fmt.Printf("str:%q\n", str)

输出结果:

str的类型:string
str:“100”

之前对格式化输出了解的不是特别的全面,这次通过学习和代码的练习,能清晰的区别并正确的使用了。
好记性不如烂笔头,做个记录以后记忆模糊的时候翻来看看。

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值