首页 > 其他分享 >golang占位符

golang占位符

时间:2023-07-15 20:56:01浏览次数:45  
标签:十六进制 输出 占位 golang Printf Go

golang占位符%v,%+v,%#v有什么区别?

原创 萧瑟 golang面试经典讲解 2023-07-12 20:05 发表于上海 收录于合集 #go14个 #go语言14个 #面试43个

一、前言

平时遇到这样的疑问,怎么样解决呢?

教大家一个小技巧,windows直接ctrl+单击fmt包名查看注释即可得到官方的解释,如下

图片

二、案例说明

package main
import "fmt"
type Person struct { Name string Age int}
func main() { person := Person{ Name: "test", Age: 15, } fmt.Printf("%v\n", person) fmt.Printf("%+v\n", person) fmt.Printf("%#v\n", person)}

执行输出如下:

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

2.1 总结

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

三、其他占位符说明

3.1 布尔

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

 

3.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

 

3.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

 

3.4 指针

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

 

3.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) (10.2+2i)

 

|希望能帮助你学习到新的知识点,欢迎提出宝贵的意见!!

golang面试经典讲解 后端技术面试交流,以常见面试题讲解golang知识、Mysql、Redis、网络、Linux、微服务架构以及微服务治理相关面试知识,让大家面试游刃有余,offer拿到手软,大家也可以后台提交相关面试题,我会统一输出供大家一起成长 35篇原创内容 公众号 收录于合集 #go语言  14个 上一篇[字节面试题]golang string是线程安全的吗?下一篇【Golang面试题】go服务运行在容器里,获取到的CPU参数有误会发生什么? 阅读 764 golang面试经典讲解     写留言    

标签:十六进制,输出,占位,golang,Printf,Go
From: https://www.cnblogs.com/cheyunhua/p/17556928.html

相关文章

  • 对 Golang 中 reflect 反射包的示例
    引子//由于反射是基于类型系统(typesystem)的,所以先简单了解下类型系统typeMyIntintREADMEvariintvarjMyInt//上面的i是int类型,j是MyInt类型,i和j是不同的静态类型,尽管他们都有相同的相关类型(这里是int)//它们不能互相赋值,除非通过强制的类型转换......
  • goland打开配置golang工程
    有一个golang工程,没有go.mod,用goland打开,配置编译,会提示没有go.mod,但是增加了go.mod,又提示工程目录下引用的包找不到。去掉go.mod先把go.mod关闭把工程目录加入GOPATH......
  • Golang 刷题记录
    刷了大概50道题,我个人的结论:在中等难度题中,使用Golang的效率完全是不输于C++的,特别是在Golang没有C++这么完善的STL库的情况下,只借助container包里的三种数据结构,大部分题时间、空间复杂度都可以媲美C++。当然这个hard题是啥情况我这个蒟蒻就不知道咯。再刷洛谷......
  • Golang学习笔记-数据类型
    目录整型有符号整型无符号整型栗子浮点型栗子布尔型栗子字符型栗子字符串型栗子字符串<-->其他类型转换数组栗子切片创建切片通过数组的方式创建切片读取/修改切片元素追加元素-append合并多个切片删除元素字典栗子字典读、写、删除指针栗子方法栗子结构体结构体继承接口栗子类型......
  • golang的list数据结构demo
    packagemainimport"container/list"funcmain(){varmylistlist.List//放在尾部mylist.PushBack("go")mylist.PushBack("grpc")mylist.PushBack("mysql")//头部放数据mylist.PushFront("gi......
  • golang channel Synchronization
    在Go语言中,通道(channel)是一个很重要的并发同步机制,可以用来在不同的goroutine之间发送和接收数据。通道实现了一个先进先出(FIFO)的数据结构,所以可以确保数据的接收顺序与发送顺序一致。此外,通道的发送和接收操作都是原子的,这意味着你不需要额外的锁来同步数据访问。这里有几......
  • 跟着 GPT-4 从0到1学习 Golang 并发机制(二)
    btw:我的个人博客网站目录一、前言二、开聊2.1Golang中的sync包-Mutex,RWMutex和WaitGroup2.2条件变量sync.Cond2.3sync.Cond的Broadcast()方法2.4原子操作Atomic2.5context包三、总结一、前言话接上回《跟着GPT-4从0到1学习Golang并发机制(一)》,我想......
  • 跟着 GPT-4 从0到1学习 Golang 并发机制(一)
    目录一、前言二、开聊2.1Golang里的并发机制介绍2.2Goroutine与线程2.3Goroutine与线程的调度开销2.4用户态和内核态2.5Golang并发编程相关的知识点2.6Select语句2.7Select语句的default使用场景三、总结一、前言今天玩点不一样的,我想试试看GPT-4能不能当好一......
  • Golang学习笔记-判断
    判断有两种:if和switchif判断if用于条件判断,它会按照顺序一次执行,当if条件及elseif条件都不成立,则会执行else部分的逻辑语法if条件判断{...}elseif条件判断{...}else{...}栗子varmoneyint=18ifmoney>0&&money<=1000{fmt.Pri......
  • Golang学习笔记-常量
    声明常量声明常量关键字:constconst{常量名}{常量类型}或const{常量名}={常量值}预定义常量预定义常量:true,false,iota其中true,false是布尔类型,iota是一个自增常量,从0开始取值它每出现一次,它自身的值会加1iota用法const{ money0=iota//值为0......