首页 > 其他分享 >Golang格式化占位符详解

Golang格式化占位符详解

时间:2024-07-24 13:52:34浏览次数:8  
标签:格式化 fmt 占位 Golang 字符串 main

Golang 格式化占位符详解

在 Golang 编程中,格式化字符串是一种常见的操作,它可以用来将不同类型的数据格式化为字符串输出。在格式化字符串时,占位符起着至关重要的作用,通过占位符可以指定数据的输出格式。本文将详细介绍 Golang 中一些常用的格式化占位符,并提供具体的代码示例供大家参考。

1. 基本的格式化占位符

在 Golang 中,常用的基本格式化占位符如下:

  • %v:默认格式
  • %+v:对结构体格式化时添加字段名
  • %#v:给值添加类型信息
  • %T:输出值的类型
  • %%:百分号

下面是一个简单的示例代码,演示了基本的格式化占位符的使用:

立即学习“go语言免费学习笔记(深入)”;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package main

 

import "fmt"

 

type Person struct {

    Name string

    Age  int

}

 

func main() {

    p := Person{Name: "Alice", Age: 30}

     

    fmt.Printf("Person: %+v

", p)

    fmt.Printf("Type of p: %T

", p)

}

运行上述代码,输出结果如下:

1

2

Person: {Name:Alice Age:30}

Type of p: main.Person

2. 宽度与精度

在格式化数字时,可以使用宽度(width)和精度(precision)来控制输出的格式。以下是一些常用的占位符形式:

  • %f:浮点数格式化
  • %t:布尔值格式化
  • %b:二进制格式化
  • %d:十进制格式化
  • %o:八进制格式化
  • %x:十六进制格式化

下面的示例演示了如何使用宽度和精度对浮点数进行格式化:

1

2

3

4

5

6

7

8

9

10

11

12

package main

 

import "fmt"

 

func main() {

    f := 3.14159

     

    fmt.Printf("Default format: %f

", f)

    fmt.Printf("Width and precision: %5.2f

", f)

}

运行上面的代码,输出结果如下:

1

2

Default format: 3.141590

Width and precision:  3.14

3. 字符串格式化

除了数字和结构体之外,Golang 也可以格式化字符串。以下是一些常用的字符串格式化占位符:

  • %s:字符串
  • %q:带双引号的字符串
  • %x:十六进制字符串
  • %c:字符(Unicode码点)
  • %p:指针

下面的示例展示了如何对字符串进行格式化:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

package main

 

import "fmt"

 

func main() {

    str := "Hello, 世界"

     

    fmt.Printf("String: %s

", str)

    fmt.Printf("Quoted string: %q

", str)

    fmt.Printf("Hex encoding: %x

", str)

}

运行上述代码,输出结果如下:

1

2

3

String: Hello, 世界

Quoted string: "Hello, 世界"

Hex encoding: 48656c6c6f2c20e4b896e7958c

总结

本文介绍了一些在 Golang 中常用的格式化占位符,其中包括基本的占位符、宽度与精度控制、以及字符串格式化。通过合理使用格式化占位符,可以使输出的数据更加清晰明了。读者可以根据实际需求灵活运用这些占位符,在日常的 Golang 编程工作中提高效率。

希望本文的内容对大家有所帮助,也希望读者能够在实践中更深入地了解和掌握 Golang 的格式化操作。

以上就是Golang格式化占位符详解的详细内容,更多请关注php中文网其它相关文章!

标签:格式化,fmt,占位,Golang,字符串,main
From: https://www.cnblogs.com/cheyunhua/p/18320745

相关文章

  • pyMysql插入数据格式化问题!(秒解决)
    运行以下代码出现的问题:%dformat:anumberisrequired,notstr。username=input("请输入用户名:")password=input("请输入密码:")password=hashlib.md5(password.encode("utf-8")).hexdigest()real_name=input("请输入真实姓名:")......
  • golang channel 和 mutex 及原子操作 用于并发控制的性能对比
    场景:对同个数加10w次,看耗费时间,这里没有用benchmark测试,在意的请略过。以下是测试代码:packagemainimport( "fmt" "sync" "sync/atomic" "testing" "time")funcTestCount(t*testing.T){ varcntint varwgsync.WaitGroup num......
  • 掌握时间与空间:深入探讨Golang中的时间戳与时区转换
    时间是我们生活的基石,而在计算机科学中,时间处理显得尤为重要。尤其是当你在处理分布式系统、跨时区应用和全球服务时,时间和时区的管理变得不可或缺。在这篇文章中,我们将以幽默和深入的方式探讨Golang中的时间戳与时区转换。时间的基本概念时间戳时间戳(Timestamp)是指从1970年1月......
  • 从源码角度详解Golang调度GMP
    文章目录从源码角度详解Golang调度GMP1.1调度器的三个抽象概念:G、M、P1.2调度的大致轮廓2.进程启动时都做了什么2.1runtime.osinit(SB)方法针对系统环境的初始化2.2runtime.schedinit(SB)调度相关的一些初始化2.3runtime·mainPC(SB)启动监控任务2.4......
  • golang 构建Web服务器
    main.gopackagemainimport("fmt" "log" "net/http")funcloggingMiddleware(nexthttp.Handler)http.Handler{ returnhttp.HandlerFunc(func(whttp.ResponseWriter,r*http.Request){ log.Printf("%s%s\n"......
  • Golang异步编程方式和技巧
    Golang异步编程方式和技巧原创 腾讯程序员 腾讯技术工程  2024年04月23日18:00 广东 12人听过Golang基于多线程、协程实现,与生俱来适合异步编程,当我们遇到那种需要批量处理且耗时的操作时,传统的线性执行就显得吃力,这时就会想到异步并行处理。下面介绍一些异步......
  • 数据列表“占位符”未随表单提交一起发送
    我有一个正在更新SQL数据库的Python应用程序。一种表单(使用Jinja)提供了一个数据列表输入,其中包含当前值(来自数据库)作为“占位符”<inputlist="item_cat"name="item_cat"placeholder="{{item_cat}}"/><datalistid="item_cat">{%forcat_nameincate......
  • 格式化字符串漏洞
    printf常见格式化字符串%d整型输出(signedint)%o八进制整型输出%x十六进制整型输出%u十进制整型输出(unsignedint)%c输出一个字符%p打印参数地址%s打印参数地址指向的字符串长度控制%d4字节%hd2字节%hhd1字节%ld大于4字节另:%n%n将当前已经打印字......
  • 【Golang 面试基础题】每日 5 题(三)
    ✍个人博客:Pandaconda-CSDN博客......
  • 深入探究 Golang 反射:功能与原理及应用
    Go出于通用性的考量,提供了反射这一功能。借助反射功能,我们可以实现通用性更强的函数,传入任意的参数,在函数内通过反射动态调用参数对象的方法并访问它的属性。举例来说,下面的bridge接口为了支持灵活调用任意函数,在运行时根据传入参数funcPtr,通过反射动态调用funcPtr指向的具体......