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

时间:2022-12-31 07:17:54

耐心和持久胜过激烈和*。

哈喽大家好,我是陈明勇,今天分享的内容是 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 标准库的常用输出函数进行了介绍。输出函数分三类介绍,第一类是输出到输出流里,第二类是标准输出,第三类是输出到字符串里。并给出简单的示例代码。