go 打印 %v %+v %#v 的区别

Posted liuhmmjj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go 打印 %v %+v %#v 的区别相关的知识,希望对你有一定的参考价值。

v     值的默认格式

%+v   添加字段名(如结构体就先输出结构体的字段类型,再输出该字段的值)

%#v  相应值的Go语法表示 

代码示例:

package main

import (
	"fmt"
)

type EqStruct  struct{
	Name string
	Age  int32
}

func main(){
	e1  :=  EqStruct{}
	e1.Name = "2"
	fmt.Printf("e1=%v	\\n", e1)
	//如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。
	fmt.Printf("e1=%+v	\\n", e1)
	//%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。
	fmt.Printf("e1=%#v	\\n", e1)
}

结果:

e1={2 0}        
e1={Name:2 Age:0}       
e1=main.EqStruct{Name:"2", Age:0}  

以上是关于go 打印 %v %+v %#v 的区别的主要内容,如果未能解决你的问题,请参考以下文章

[Go] Go面试题

[Go] Go面试题

[Go] Go面试题

Go格式化输出

go 常用包

Go输入输出格式化Printf