Go 语言 Printf 函数和格式化动词详解

2023-11-26 20:20

本文主要是介绍Go 语言 Printf 函数和格式化动词详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Printf() 函数可以使用多种格式化动词对输出进行格式化。下面是可以与所有数据类型一起使用的一些通用格式化动词:

通用格式化动词:
以下动词适用于所有数据类型:

动词描述
%v以默认格式打印值
%#v以 Go 语法格式打印值
%T打印值的类型
%%打印百分号

示例:

package mainimport ("fmt"
)func main() {var i = 15.5var txt = "Hello World!"fmt.Printf("%v\n", i)fmt.Printf("%#v\n", i)fmt.Printf("%v%%\n", i)fmt.Printf("%T\n", i)fmt.Printf("%v\n", txt)fmt.Printf("%#v\n", txt)fmt.Printf("%T\n", txt)
}

结果:

15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string

整数格式化动词

以下动词适用于整数数据类型:

动词描述
%b二进制
%d十进制
%+d带符号的十进制
%o八进制
%O八进制(带 0o 前缀)
%x十六进制(小写)
%X十六进制(大写)
%#x带 0x 前缀的十六进制
%4d使用空格填充(宽度 4,右对齐)
%-4d使用空格填充(宽度 4,左对齐)
%04d使用零填充(宽度 4)

示例:

package mainimport ("fmt"
)func main() {var i = 15fmt.Printf("%b\n", i)fmt.Printf("%d\n", i)fmt.Printf("%+d\n", i)fmt.Printf("%o\n", i)fmt.Printf("%O\n", i)fmt.Printf("%x\n", i)fmt.Printf("%X\n", i)fmt.Printf("%#x\n", i)fmt.Printf("%4d\n", i)fmt.Printf("%-4d\n", i)fmt.Printf("%04d\n", i)
}

结果:

1111
15
+15
17
0o17
f
F
0xf15
15
0015

字符串格式化动词

以下动词适用于字符串数据类型:

动词描述
%s普通字符串打印
%q双引号包裹的字符串打印
%8s普通字符串打印(宽度 8,右对齐)
%-8s普通字符串打印(宽度 8,左对齐)
%x字节值的十六进制转储
% x带空格的十六进制转储

示例:

package mainimport ("fmt"
)func main() {var txt = "Hello"fmt.Printf("%s\n", txt)fmt.Printf("%q\n", txt)fmt.Printf("%8s\n", txt)fmt.Printf("%-8s\n", txt)fmt.Printf("%x\n", txt)fmt.Printf("% x\n", txt)
}

结果:

Hello
"Hello"Hello
Hello
48656c6c6f
48 65 6c 6c 6f

布尔格式化动词

以下动词适用于布尔数据类型:

动词描述
%t布尔运算符的 true 或 false 格式(与 %v 相同)

示例:

package mainimport ("fmt"
)func main() {var i = truevar j = falsefmt.Printf("%t\n", i)fmt.Printf("%t\n", j)
}

结果:

true
false

浮点数格式化动词

以下动词适用于浮点数数据类型:

动词描述
%e科学计数法,指数为 ‘e’
%f小数点,无指数部分
%.2f默认宽度,精度为 2
%6.2f宽度 6,精度 2
%g必要时使用指数,仅保留必要的位数

示例:

package mainimport ("fmt"
)func main() {var i = 3.141fmt.Printf("%e\n", i)fmt.Printf("%f\n", i)fmt.Printf("%.2f\n", i)fmt.Printf("%6.2f\n", i)fmt.Printf("%g\n", i)
}

结果:

3.141000e+00
3.141000
3.143.14
3.141

请注意,这个翻译可能不是完美的,因为语言之间的表达方式可能有细微的差异。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

在这里插入图片描述

这篇关于Go 语言 Printf 函数和格式化动词详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/426261

相关文章

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1