一文了解 Go fmt 标准库输出函数的使用

简介: 本篇文章对 fmt 标准库的常用输出函数进行了介绍。输出函数分三类介绍,第一类是输出到输出流里,第二类是标准输出,第三类是输出到字符串里。并给出简单的示例代码。

耐心和持久胜过激烈和狂热。

哈喽大家好,我是陈明勇,本文分享的内容是 Go fmt 标准库输出函数的使用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!

fmt 输出函数

函数 描述
Fprint(w io.Writer, a ...any) (n int, err error) 使用默认格式将参数写入到 w 中,如果相邻两个参数都不是字符串,则在它们之前添加空格
Fprintf(w io.Writer, format string, a ...any) (n int, err error) 根据格式说明符进行格式化,并写入到 w 中
Fprintln(w io.Writer, a ...any) (n int, err error) 使用默认格式将参数写入到 w 中,参数之间添加空格和换行符
Print(a ...any) (n int, err error) 打印指定参数,如果相邻两个参数都不是字符串,打印时用空格隔开
Printf(format string, a ...any) (n int, err error) 根据格式说明符进行格式化并打印
Println(a ...any) (n int, err error) 打印指定参数,参数之间用空格和换行符分隔
Sprint(a ...any) string 将参数按照默认格式进行格式化,如果相邻两个参数都不是字符串则在其中间添加空格,并以字符串的结果返回
Sprintf(format string, a ...any) string 根据格式说明符进行格式化并以字符串的结果返回
Sprintln(a ...any) string 将参数按照默认格式进行格式化,参数之间添加空格和换行符,并以字符串的结果返回

Fprint、Fprintf、Fprintln

import (
    "fmt"
    "os"
)
func main() {
    file, err := os.OpenFile("./test.txt", os.O_WRONLY, 0666)
    if err != nil {
        return
    }
    defer file.Close()
    fmt.Fprint(file, "123")
    fmt.Fprintln(file, "456")
    fmt.Fprintf(file, "%d", 789)
}
复制代码
  • 打开 test.txt 文件,通过 Fprint 函数先将 123 写入到文件里;
  • 然后通过 Fprintln 函数将 456 写入到文件里并换行;
  • 最后通过 Fprintf 函数将 789 格式化输出到文件里。
  • 程序运行后文件的内容为:
123456
789
复制代码

Print、Printf、Println

import (
    "fmt"
)
func main() {
    fmt.Print("Hello, ")
    fmt.Println("World!")
    s := "golang!"
    fmt.Printf("Hello, %s", s)
}
复制代码
  • 首先通过 Print 函数打印 Hello, ;
  • 然后通过 Println 函数打印 Wrold! 并换行,与上面打印的语句连起来,一行的打印内容为 Hello, World!;
  • 最后通过 Printf 函数,进行格式化打印。
  • 最终的打印结果为:
Hello, World!
Hello, golang!
复制代码

Sprint、Sprintf、Sprintln

import (
    "fmt"
)
func main() {
    s1 := fmt.Sprint("hello, world!")
    fmt.Printf("%#v\n", s1)
    s2 := fmt.Sprintln("hello, gopher!")
    fmt.Printf("%#v\n", s2)
    name := "小明"
    s3 := fmt.Sprintf("hello, %s", name)
    fmt.Printf("%#v\n", s3)
}
复制代码
  • 通过 Sprint 将指定内容转成默认格式的字符串并用变量 s1 接收,通过占位符 %#v 打印出 s1 的原生内容 → "hello, world!"
  • 通过 Sprintln 将指定内容转成默认格式的字符串并添加换行符,用变量 s2 接收,通过占位符 %#v 打印出 s2 的原生内容 → "hello, gopher!\n"
  • 通过 Sprintf 将指定内容转成指定格式的字符串并用变量 s3 接收,通过占位符 %#v 打印出 s3 的原生内容 → "hello, 小明"
  • 如果对占位符不是很了解的小伙伴,可以查看我的这篇文章 一文了解 Go fmt 标准库的常用占位符及其简单使用

小结

本篇文章对 fmt 标准库的常用输出函数进行了介绍。输出函数分三类介绍,第一类是输出到输出流里,第二类是标准输出,第三类是输出到字符串里。并给出简单的示例代码。

目录
相关文章
|
3天前
|
存储 算法 Go
go语言中的延迟执行函数
【5月更文挑战第13天】`defer`是Go语言中用于延迟执行函数的关键字,尤其适用于资源管理,如文件关闭和锁的释放。它在函数返回前按照LIFO顺序执行,确保资源在任何返回路径下都能正确释放。`defer`可以拦截`panic`并在函数返回前执行,但无法阻止某些致命的`panic`。此外,`defer`可用于修改返回值、输出调试信息和还原变量值。尽管在某些场景下可能影响性能,但Go的优化使得其在多数情况下性能表现良好,特别是在资源清理方面。在Go 1.20及以后的版本,`defer`的性能已显著提升,尤其是在高计算量的场景下。
225 2
|
11天前
|
SQL 开发框架 .NET
你确定不学?Go标准库之 text/template
你确定不学?Go标准库之 text/template
11 2
|
11天前
|
Go 数据处理
Go杂记1-切片Slice作为函数参数那点事儿
Go杂记1-切片Slice作为函数参数那点事儿
13 0
|
11天前
|
运维 监控 Go
Golang深入浅出之-Go语言中的日志记录:log与logrus库
【4月更文挑战第27天】本文比较了Go语言中标准库`log`与第三方库`logrus`的日志功能。`log`简单但不支持日志级别配置和多样化格式,而`logrus`提供更丰富的功能,如日志级别控制、自定义格式和钩子。文章指出了使用`logrus`时可能遇到的问题,如全局logger滥用、日志级别设置不当和过度依赖字段,并给出了避免错误的建议,强调理解日志级别、合理利用结构化日志、模块化日志管理和定期审查日志配置的重要性。通过这些实践,开发者能提高应用监控和故障排查能力。
95 1
|
11天前
|
安全 Go
Golang深入浅出之-Go语言标准库中的文件读写:io/ioutil包
【4月更文挑战第27天】Go语言的`io/ioutil`包提供简单文件读写,适合小文件操作。本文聚焦`ReadFile`和`WriteFile`函数,讨论错误处理、文件权限、大文件处理和编码问题。避免错误的关键在于检查错误、设置合适权限、采用流式读写及处理编码。遵循这些最佳实践能提升代码稳定性。
24 0
|
11天前
|
NoSQL Shell Go
在go中简单使用go-redis库
在go中简单使用go-redis库
|
11天前
|
存储 Go 开发者
【Go语言专栏】函数在Go语言中的使用与实现
【4月更文挑战第30天】本文介绍了Go语言中函数的使用和实现,包括函数定义、参数传递、返回值、匿名函数、变长参数、函数类型、闭包和错误处理。通过示例展示了如何定义和调用函数,以及如何利用闭包和递归解决问题。此外,还提到了Go函数作为一等公民的特性,允许存储和传递。进一步学习可参考官方文档和相关书籍。
|
11天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
32 1
|
11天前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
31 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
11天前
|
程序员 Go API
【Go语言快速上手(二)】 分支与循环&函数讲解
【Go语言快速上手(二)】 分支与循环&函数讲解