Go语言中占位符格式化符号的实现

 更新时间:2025年10月09日 10:58:34   作者:Penge666  
本文介绍了Go语言中常用格式化占位符,包括结构体、布尔、整数、浮点数、字符串、切片及指针类型,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

普通占位符

占位符描述举例结果
%v默认格式的值fmt.Printf("%v", User{Name: "小明", Age: 18}){小明 18}
%+v如果打印的是结构体,额外打印字段名fmt.Printf("%+v", User{Name: "小明", Age: 18}){Name:小明 Age:18}
%#v对应值的 Go 语法表示fmt.Printf("%#v", User{Name: "小明", Age: 18})main.User{Name:"小明", Age:18}
%T对应值类型的 Go 语法表示fmt.Printf("%T", User{Name: "小明", Age: 18})main.User
%%非占位符,而是字面上的 %fmt.Printf("%%")%
package main

import (
	"fmt"
)

// 定义一个结构体类型
type User struct {
	Name string
	Age  int
}

func main() {
	u := User{Name: "小明", Age: 18}

	fmt.Println("1. %v(默认格式)")
	fmt.Printf("输出: %v\n\n", u)
	// 输出: {小明 18}

	fmt.Println("2. %+v(结构体带字段名)")
	fmt.Printf("输出: %+v\n\n", u)
	// 输出: {Name:小明 Age:18}

	fmt.Println("3. %#v(Go 语法表示)")
	fmt.Printf("输出: %#v\n\n", u)
	// 输出: main.User{Name:"小明", Age:18}

	fmt.Println("4. %T(类型表示)")
	fmt.Printf("输出: %T\n\n", u)
	// 输出: main.User

	fmt.Println("5. %%(百分号字面量)")
	fmt.Printf("输出: 100%% 成功\n")
	// 输出: 100% 成功
}

布尔

占位符描述举例结果
%t对应值 true 或 falsefmt.Printf("%t", false)false

整数

占位符描述举例结果
%b二进制的形式fmt.Printf("%b", 2)10
%c对应的Unicode码位表示的字符fmt.Printf("%c", 65)A
%d十进制的形式fmt.Printf("%d", 10)10
%5d十进制的形式,长度为5,长度不够用空格来补fmt.Printf("%5d", 123)__123,由于空格显示不出来,用下划线表示空格
%o八进制的形式fmt.Printf("%o", 10)12
%O前缀为0o的八进制的形式fmt.Printf("%O", 10)0o12
%q使用 Go 语法安全转义的单引号字符文字fmt.Printf("%q", 65)'A'
%x十六进制的形式,字母部分用小写字母 a-f 表示fmt.Printf("%x", 12)c
%X十六进制的形式,字母部分用大写字母 A-F 表示fmt.Printf("%X", 12)C
%UUnicode 格式fmt.Printf("%U", 15)U+000F

浮点数

占位符描述举例结果
%f打印小数,默认的长度和小数,小数精度为 6 位fmt.Printf("%f", 1.50000000001)1.500000
%5f长度为 5(整数和小数点以及小数加起来的长度),默认小数精度6位,长度不够则用空格来补fmt.Printf("%10f", 0.1)__0.100000,由于空格显示不出来,用下划线表示空格
%.3f默认长度,小数精度为 3fmt.Printf("%.3f", 0.1)0.100
%7.3f长度为 7(整数和小数点以及小数加起来的长度),小树精度为 3fmt.Printf("%7.3f", 0.1)__ 0.100,由于空格显示不出来,用下划线表示空格

字符串和字节切片

占位符描述举例结果
%s输出 string 类型或 []byte 类型的字符串形式fmt.Printf("%s, %s", "haha", []byte("haha"))haha, haha
%q加上双引号的字符串fmt.Printf("%q", "haha")"haha"
%x十六进制的形式,字母用小写表示,每个字节两个字符fmt.Printf("%x", "hello")68656c6c6f
%X十六进制的形式,字母用大写表示,每个字节两个字符fmt.Printf("%X", "hello")68656C6C6F
package main

import (
	"fmt"
)

func main() {
	s := "haha"
	b := []byte("haha")

	fmt.Println("1. %s:输出字符串或 []byte 的字符串表示")
	fmt.Printf("输出: %s, %s\n\n", s, b)
	// 输出: haha, haha

	fmt.Println("2. %q:字符串带双引号")
	fmt.Printf("输出: %q\n\n", s)
	// 输出: "haha"

	fmt.Println("3. %x:十六进制小写(每字节两个字符)")
	fmt.Printf("输出: %x\n\n", "hello")
	// 输出: 68656c6c6f

	fmt.Println("4. %X:十六进制大写(每字节两个字符)")
	fmt.Printf("输出: %X\n\n", "hello")
	// 输出: 68656C6C6F
}

切片

占位符描述举例结果
%p以16进制表示的第0个元素的地址,前缀为0xfmt.Printf("%p", []int{1, 2, 3})0xc000010120

指针

占位符描述举例结果
%p16进制表示,前缀为0xfmt.Printf("%p", &User{Name: "小明"})0xc000008078

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

相关文章

  • golang切片反序实例

    golang切片反序实例

    这篇文章主要介绍了golang切片反序实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • golang http使用踩过的坑与应对方式

    golang http使用踩过的坑与应对方式

    这篇文章主要介绍了golang http使用踩过的坑与应对方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 深入了解Golang的map增量扩容

    深入了解Golang的map增量扩容

    这篇文章主要介绍了深入了解Golang的map增量扩容,扩容的主要目的是为了缩短map容器的响应时间。增量扩容的本质其实就是将总的扩容时间分摊到了每一次hash操作上,更多相关内容需要的小伙伴可以参考一下
    2022-06-06
  • Go语言中的IO操作及Flag包的用法

    Go语言中的IO操作及Flag包的用法

    这篇文章介绍了Go语言中的IO操作及Flag包的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • go doudou应用中使用注解示例详解

    go doudou应用中使用注解示例详解

    这篇文章主要为大家介绍了go doudou应用中使用注解示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Golang中堆排序的实现

    Golang中堆排序的实现

    堆是一棵基于数组实现的特殊的完全二叉树,本文主要介绍了Golang中堆排序的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 安装Sublime Text支持Go插件的方法步骤

    安装Sublime Text支持Go插件的方法步骤

    本文主要介绍了安装Sublime Text支持Go插件的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Go routine使用方法讲解

    Go routine使用方法讲解

    goroutine是Go语言提供的语言级别的轻量级线程,在我们需要使用并发时,我们只需要通过go关键字来开启goroutine即可。这篇文章主要介绍了GoLang并发机制goroutine原理,感兴趣的可以了解一下
    2023-01-01
  • golang如何使用gos7读取S7200Smart数据

    golang如何使用gos7读取S7200Smart数据

    文章介绍了如何使用Golang语言的Gos7工具库读取西门子S7200Smart系列PLC的数据,通过指定数据块号、起始字节偏移量和数据长度,可以精确读取所需的数据,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • 深入解析Go语言中HTTP请求处理的底层实现

    深入解析Go语言中HTTP请求处理的底层实现

    本文将详细介绍 Go 语言中 HTTP 请求处理的底层机制,包括工作流程、创建 Listen Socket 监听端口、接收客户端请求并建立连接以及处理客户端请求并返回响应等,需要的朋友可以参考下
    2023-05-05

最新评论