详解go 中的 fmt 占位符

 更新时间:2024年01月10日 11:58:58   作者:ldxxxxll  
这篇文章主要介绍了go 中的 fmt 占位符,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

通用占位符

%v

值的默认格式表示

fmt.Printf("%v\n", 100)}//100

%+v

类似%v,但输出结构体时会添加字段名

o := struct{ name string }{"tim"}
fmt.Printf("%+v\n", o)}}
//{name:tim}

%#v

值的 Go 语法表示

o := struct{ name string }{"tim"}
fmt.Printf("%#v\n", o)  }
//struct { name string }{name:"tim"}

%T

打印值的类型

o := struct{ name string }{"tim"}
fmt.Printf("%T\n", o)  }
//struct { name string }

%%

百分号

fmt.Printf("100%%\n")  }//100%

布尔型

true 或 false

t := true
fmt.Printf("value: %t", t)

整形 %b

表示为二进制

fmt.Printf("%c\n", 65)//A

%c

该值对应的unicode码值

fmt.Printf("%c\n", 65)//A

%d

表示为十进制

fmt.Printf("%d\n", 65)//65

%o

表示为八进制

fmt.Printf("%o\n", 65)//101

%x

表示为十六进制,使用a-f

fmt.Printf("%x\n", 65)//41

%X

表示为十六进制,使用A-F

fmt.Printf("%X\n", 65)//41

%U

表示为Unicode格式:U+1234,等价于”U+%04X”

fmt.Printf("%U\n", 65) // U+0041

%q

该值对应的单引号括起来的go语法字符字面值必要时会采用安全的转义表示

fmt.Printf("%q\n", 65)//'A'

浮点数与复数

%b

无小数部分、二进制指数的科学计数法,如-123456p-78

fmt.Printf("%b\n", 12.34)//6946802425218990p-49

%e

科学计数法,如-1234.456e+78

fmt.Printf("%e\n", f)//1.234000e+01

%G

根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

fmt.Printf("%G\n", f)//12.34

%g

根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)

fmt.Printf("%g\n", f)//12.34

%F

等价于%f

fmt.Printf("%F\n", 12.34)//12.340000

%f

有小数部分但无指数部分,如123.456

fmt.Printf("%f\n", f)//12.340000

%E

科学计数法,如-1234.456E+78

fmt.Printf("%E\n", f)//1.234000E+01

字符串和[]byte %s

直接输出字符串或者[]byte

fmt.Printf("%s\n", "tim")//tim

%q

该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示

fmt.Printf("%q\n", "tim")//"tim"

%X

每个字节用两字符十六进制数表示(使用A-F)

fmt.Printf("%X\n", "tim")//E5BEAEE5AEA2

%x

每个字节用两字符十六进制数表示(使用a-f)

fmt.Printf("%x\n", "tim")//e5beaee5aea2

指针

%p

表示为十六进制,并加上前导的0x

t := []int{1}fmt.Printf("value: %p", t)// value: 0x14000190008

宽度标识符

%f

默认宽度,默认精度

v := 92873.2309837 fmt.Printf("value: %f\n", v) // value: 92873.230984

%9f

宽度9,默认精度

fmt.Printf("value: %9f\n", v)// value: 92873.230984

%9.f

宽度9,精度0

fmt.Printf("value: %9.f\n", v)// value:     92873

%9.2f

宽度9,精度2

fmt.Printf("value: %9.2f\n", v)// value:  92873.23

%.2f

默认宽度,精度2

fmt.Printf("value: %.2f\n", v)// value: 92873.23

其他flag

‘+’

总是输出数值的正负号;对%q(%+q)会生成全部是ASCII字符的输出(通过转义)

v := -92873.2309837fmt.Printf("value: %+f", v)

’ ’

对数值,正数前加空格而负数前加负号;对字符串采用%x或%X时(% x或% X)会给各打印的字节之间加空格

v := 92873.2309837fmt.Printf("value: % f", v)

‘0’

使用0而不是空格填充,对于数值类型会把填充的0放在正负号后面

v := -92873.2309837fmt.Printf("value: %07.f", v)// value: -092873

‘#’

八进制数前加0(%#o),十六进制数前加0x(%#x)或0X(%#X),指针去掉前面的0x(%#p)对%q(%#q),对%U(%#U)会输出空格和单引号括起来的go字面值

v := 101fmt.Printf("value: %#o", v)// value: 0145

‘-’

在输出右边填充空白而不是默认的左边(即从默认的右对齐切换为左对齐)

v := 101.35345345fmt.Printf("value: %-3.1f", v)// value: 101.4

到此这篇关于go 中的 fmt 占位符的文章就介绍到这了,更多相关go fmt 占位符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go语言声明一个多行字符串的变量

    Go语言声明一个多行字符串的变量

    这篇文章主要介绍了Go语言声明一个多行字符串的变量的方法和示例,非常简单实用,有需要的小伙伴可以参考下。
    2015-04-04
  • Go语言单元测试基础从入门到放弃

    Go语言单元测试基础从入门到放弃

    这篇文章主要介绍了Go单元测试基础从入门到放弃为大家开启Go语言单元测试第一篇章,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 详解go语言中type关键词的几种使用

    详解go语言中type关键词的几种使用

    这篇文章主要介绍了详解go语言中type的几种使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 聊聊go xorm生成mysql的结构体问题

    聊聊go xorm生成mysql的结构体问题

    这篇文章主要介绍了go xorm生成mysql的结构体问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-03-03
  • go build -tags构建约束试验示例解析

    go build -tags构建约束试验示例解析

    这篇文章主要为大家介绍了go build -tags构建约束试验示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • golang中json反序列化可能遇到的问题

    golang中json反序列化可能遇到的问题

    这篇文章主要给大家介绍了关于golang中json反序列化可能遇到的问题的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • golang Goroutine超时控制的实现

    golang Goroutine超时控制的实现

    日常开发中我们大概率会遇到超时控制的场景,比如一个批量耗时任务、网络请求等,本文主要介绍了golang Goroutine超时控制的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Go 1.22中的for循环新特性详解

    Go 1.22中的for循环新特性详解

    在 Go 语言中,for 循环是实现迭代的主要方式,Go 中的 for 循环非常灵活,有多种使用方式,本文将给大家详细的介绍一下Go 1.22中的for循环新特性,感兴趣的朋友可以参考下
    2024-02-02
  • 浅谈Go语言的空标示符

    浅谈Go语言的空标示符

    本文通过文字及实例介绍了Go语言的空标示符,对此有不明白的朋友可以参考学习,下面一起来看看吧。
    2016-08-08
  • Go语言生成素数的方法

    Go语言生成素数的方法

    这篇文章主要介绍了Go语言生成素数的方法,实例分析了Go语言生成素数的技巧,需要的朋友可以参考下
    2015-03-03

最新评论