一文了解 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 标准库的常用输出函数进行了介绍。输出函数分三类介绍,第一类是输出到输出流里,第二类是标准输出,第三类是输出到字符串里。并给出简单的示例代码。

目录
相关文章
|
2月前
|
存储 算法 Go
go语言中的延迟执行函数
【5月更文挑战第13天】`defer`是Go语言中用于延迟执行函数的关键字,尤其适用于资源管理,如文件关闭和锁的释放。它在函数返回前按照LIFO顺序执行,确保资源在任何返回路径下都能正确释放。`defer`可以拦截`panic`并在函数返回前执行,但无法阻止某些致命的`panic`。此外,`defer`可用于修改返回值、输出调试信息和还原变量值。尽管在某些场景下可能影响性能,但Go的优化使得其在多数情况下性能表现良好,特别是在资源清理方面。在Go 1.20及以后的版本,`defer`的性能已显著提升,尤其是在高计算量的场景下。
251 2
|
17天前
|
存储 Go
go语言中fmt格式化包和内置函数汇总
【7月更文挑战第10天】本文介绍fmt包和`Errorf`用于创建格式化的错误消息。`fmt`包还涉及一些接口,如`Formatter`、`GoStringer`、`ScanState`、`Scanner`和`Stringer`,支持自定义格式化和输入/输出处理。
25 1
|
1月前
|
NoSQL Go Redis
如何使用 Go 和 `go-redis/redis` 库连接到 Redis 并执行一些基本操作
如何使用 Go 和 `go-redis/redis` 库连接到 Redis 并执行一些基本操作
20 1
|
1月前
|
程序员 Go
【Go语言精进之路】Go语言fmt包深度探索:格式化输入输出的利器
【Go语言精进之路】Go语言fmt包深度探索:格式化输入输出的利器
25 3
|
1月前
|
NoSQL 安全 Go
Go 语言 mongox 库:简化操作、安全、高效、可扩展、BSON 构建
go mongox 是一个基于泛型的库,扩展了 MongoDB 的官方库。通过泛型技术,它实现了结构体与 MongoDB 集合的绑定,旨在提供类型安全和简化的数据操作。 go mongox 还引入链式调用,让文档操作更流畅,并且提供了丰富的 BSON 构建器和内置函数,简化了 BSON 数据的构建。 此外,它还支持插件化编程和内置多种钩子函数,为数据库操作前后的自定义逻辑提供灵活性,增强了应用的可扩展性和可维护性。
68 6
|
2月前
|
编译器 Go
Go 语言函数
Go 语言函数
21 7
|
2月前
|
Java 测试技术 Go
使用go的内置运行时库调试和优化程序
【5月更文挑战第18天】在本文中,作者探讨了如何为运行时程序添加剖析支持以优化性能。他们面临的问题是一个程序需要找出平方根为整数且逆序平方等于其逆序的数字。他们首先展示了原始代码,然后使用`runtime`库进行优化,将计算和调用功能分离,同时记录CPU和内存使用情况。
42 4
|
2月前
|
JSON Java Go
使用go语言中的内置库调试性能
【5月更文挑战第21天】本文介绍Go 语言提供了内置的 expvar 模块来输出度量数据,帮助定位性能瓶颈。与 pprof 不同,expvar 专注于应用的宏观状态,通过 HTTP 接口 `/debug/vars` 提供标准的 JSON 格式数据,包括自定义度量和内存统计等。通过 expvar,开发者可以轻松监控应用状态,如消息处理速率、内存使用等,而无需像 C++ 或 Java 那样手动实现。
36 0
使用go语言中的内置库调试性能
|
1月前
|
Go
Go语言进阶篇——浅谈函数中的闭包
Go语言进阶篇——浅谈函数中的闭包
|
1月前
|
Go
go基础语法结束篇 ——函数与方法
go基础语法结束篇 ——函数与方法