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

举报
陈明勇0423 发表于 2023/04/30 20:00:42 2023/04/30
【摘要】 本篇文章对 `fmt` 标准库的常用输出函数进行了介绍。输出函数分三类介绍,第一类是输出到输出流里,第二类是标准输出,第三类是输出到字符串里。并给出简单的示例代码。

作者:陈明勇
专注分享后端知识,如果文章对您有帮助,欢迎点赞收藏加关注,一起学习,一起进步!

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。