Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`

简介: 在 Go 中,可以使用 fmt.Sprintf() 和 fmt.Printf() 函数来格式化字符串,这两个函数类似于 C 语言中的 scanf 和 printf 函数。本文介绍了五个最常用的格式化动词和参数索引的使用方法。

在 Go 中,可以使用 fmt.Sprintf()fmt.Printf() 函数来格式化字符串,这两个函数类似于 C 语言中的 scanfprintf 函数。

fmt.Sprintf()

fmt.Sprintf() 函数返回一个格式化后的字符串,而不是将其打印到标准输出流中。下面是一个例子:

package main

import "fmt"

func main() {
    name := "Mazey"
    age := 24
    str := fmt.Sprintf("My name is %s and I'm %d years old.", name, age)
    fmt.Println(str)
}

输出:

My name is Mazey and I'm 24 years old.

在这个例子中,使用了 %s%d 格式化动词来格式化字符串。s 用于字符串,d 用于整数。

fmt.Printf()

fmt.Printf() 函数将格式化后的字符串打印到标准输出流中。下面是一个例子:

package main

import "fmt"

func main() {
    name := "Mazey"
    age := 24
    fmt.Printf("My name is %s and I'm %d years old.", name, age)
}

输出:

My name is Mazey and I'm 24 years old.

在这个例子中,使用了 %s%d 格式化动词来打印格式化字符串。s 用于字符串,d 用于整数。

格式化动词 Verbs

在 Go 中,可以使用不同的格式化动词来格式化不同类型的数据。下面是五个最常用的格式化动词:

  • %s:用于字符串
  • %t:用于布尔值
  • %d:用于有符号十进制整数
  • %f:用于浮点数
  • %v:用于任何值

参数索引 Argument Indexes

如果想要在格式化字符串中引用相同类型的多个参数,可以使用参数索引。例如:

package main

import "fmt"

func main() {
    fmt.Printf("%[2]d %[1]d", 2, 3)
}

输出:

3 2

在这个例子中,使用了参数索引来交换 %d 格式化动词引用的参数顺序。

总结

在 Go 中,可以使用 fmt.Sprintf()fmt.Printf() 函数来格式化字符串。本文介绍了五个最常用的格式化动词和参数索引的使用方法。

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/3558.html

(完)

目录
相关文章
|
4月前
|
供应链 Go C语言
掌握Go语言:探索Go语言基础,字符串连接、关键字、空格、格式化字符串的重要性(7)
掌握Go语言:探索Go语言基础,字符串连接、关键字、空格、格式化字符串的重要性(7)
|
1天前
|
程序员 Go PHP
为什么大部分的 PHP 程序员转不了 Go 语言?
【9月更文挑战第8天】大部分 PHP 程序员难以转向 Go 语言,主要因为:一、编程习惯与思维方式差异,如语法风格和编程范式;二、学习成本高,需掌握新知识体系且面临项目压力;三、职业发展考量,现有技能价值及市场需求不确定性。学习新语言虽有挑战,但对拓宽职业道路至关重要。
22 10
|
2天前
|
算法 程序员 Go
PHP 程序员学会了 Go 语言就能唬住面试官吗?
【9月更文挑战第8天】学会Go语言可提升PHP程序员的面试印象,但不足以 solely “唬住” 面试官。学习新语言能展现学习能力、拓宽技术视野,并增加就业机会。然而,实际项目经验、深入理解语言特性和综合能力更为关键。全面展示这些方面才能真正提升面试成功率。
20 10
|
1天前
|
编译器 Go
go语言学习记录(关于一些奇怪的疑问)有别于其他编程语言
本文探讨了Go语言中的常量概念,特别是特殊常量iota的使用方法及其自动递增特性。同时,文中还提到了在声明常量时,后续常量可沿用前一个值的特点,以及在遍历map时可能遇到的非顺序打印问题。
|
6天前
|
安全 大数据 Go
深入探索Go语言并发编程:Goroutines与Channels的实战应用
在当今高性能、高并发的应用需求下,Go语言以其独特的并发模型——Goroutines和Channels,成为了众多开发者眼中的璀璨明星。本文不仅阐述了Goroutines作为轻量级线程的优势,还深入剖析了Channels作为Goroutines间通信的桥梁,如何优雅地解决并发编程中的复杂问题。通过实战案例,我们将展示如何利用这些特性构建高效、可扩展的并发系统,同时探讨并发编程中常见的陷阱与最佳实践,为读者打开Go语言并发编程的广阔视野。
|
3天前
|
存储 Shell Go
Go语言结构体和元组全面解析
Go语言结构体和元组全面解析
|
8天前
|
Go
golang语言之go常用命令
这篇文章列出了常用的Go语言命令,如`go run`、`go install`、`go build`、`go help`、`go get`、`go mod`、`go test`、`go tool`、`go vet`、`go fmt`、`go doc`、`go version`和`go env`,以及它们的基本用法和功能。
20 6
|
8天前
|
存储 Go
Golang语言基于go module方式管理包(package)
这篇文章详细介绍了Golang语言中基于go module方式管理包(package)的方法,包括Go Modules的发展历史、go module的介绍、常用命令和操作步骤,并通过代码示例展示了如何初始化项目、引入第三方包、组织代码结构以及运行测试。
16 3
|
10天前
|
缓存 安全 Java
如何利用Go语言提升微服务架构的性能
在当今的软件开发中,微服务架构逐渐成为主流选择,它通过将应用程序拆分为多个小服务来提升灵活性和可维护性。然而,如何确保这些微服务高效且稳定地运行是一个关键问题。Go语言,以其高效的并发处理能力和简洁的语法,成为解决这一问题的理想工具。本文将探讨如何通过Go语言优化微服务架构的性能,包括高效的并发编程、内存管理技巧以及如何利用Go生态系统中的工具来提升服务的响应速度和资源利用率。
|
10天前
|
Rust Linux Go
Rust/Go语言学习
Rust/Go语言学习