本文介绍: 【代码golang占位符%v、%+v、%#v详解
package main

import "fmt"

type Person struct {
  Name string
  Age  int
}

func main() {
  person := Person{
    Name: "test",
    Age:  15,
  }
  fmt.Printf("%vn", person)
  fmt.Printf("%+vn", person)
  fmt.Printf("%#vn", person)
}

执行输出如下

{test 15}{Name:test Age:15}main.Person{Name:"test", Age:15}

1 占位符%v、%+v、%#v说明

占位符     说明          
%v      输出所有的值信息 
%+v     打印结构体时会打印字段名
%#v     相应值的Go语法表示

2 其他占位符说明

2.1 布尔

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

2.2 整数

占位符     说明                                  举例                       输出
%b      二进制表示                             Printf("%b", 5)             101
%c      相应Unicode码点所表示的字符              Printf("%c", 0x4E2D)        中
%d进制表示                             Printf("%d", 0x12)          18
%o      八进制表示                             Printf("%d", 10)            12
%q      单引号围绕的字符字面值,由Go语法安全地转义  Printf("%q", 0x4E2D)        '中'
%x      十六进制表示,字母形式为小写 a-f          Printf("%x", 13)             d
%X      十六进制表示,字母形式为大写 A-F          Printf("%x", 13)             D
%U      Unicode格式:U+1234,等同于 "U+%04X"    Printf("%U", 0x4E2D)         U+4E2D

2.3 字符串以及字节切片

占位符          说明                              举例                           输出
%s      输出字符串表示(string类型或[]byte)    Printf("%s", []byte("Go语言"))  Go语言
%q      双引号围绕的字符串,由Go语法安全地转义   Printf("%q", "Go语言")         "Go语言"
%x      十六进制,小写字母,每字节两个字符       Printf("%x", "golang")       676f6c616e67
%X      十六进制,大写字母,每字节两个字符       Printf("%X", "golang")       676F6C616E67

2.4 指针

占位符         说明                      举例                             输出
%p      十六进制表示,前缀 0x          Printf("%p", &people)             0x4f57f0

2.5 浮点数与复数

占位符     说明                              举例            输出
%b小数部分的,指数为二的幂的科学计数法,
        与 strconv.FormatFloat 的 'b' 转换格式一致。例如 -123456p-78
%e      科学计数法,例如 -1234.456e+78        Printf("%e", 10.2)     1.020000e+01
%E      科学计数法,例如 -1234.456E+78        Printf("%e", 10.2)     1.020000E+01
%f      有小数点而无指数,例如 123.456        Printf("%f", 10.2)     10.200000
%g      根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 Printf("%g", 10.20)   10.2
%G      根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出 Printf("%G", 10.20+2i) 

原文地址:https://blog.csdn.net/ygq13572549874/article/details/131819723

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17211.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注