Go 语言 fmt.Sprintf ,格式化输出

Printf()、Sprintf()、Fprintf() 函数的区别用法是什么?

  都是输出格式化字符串,只是输出到的目标不一样:

    Printf() 是把格式化字符串输出到标准到标准输出(一般是屏幕,可以重定向)

    Printf() 是和标准输出文件(stdout)关联的,Fprintf 则没有这个限制

    Sprintf() 是把格式化字符串输出到指定的字符串中,可以用一个变量来接受,然后在打印

    Fprintf() 是把格式字符串输出到指定的文件设备中,所以参数比Printf 多一个文件指针*File

主要用于文件操作,Fprintf() 是格式化输出到一个 Stream ,通常是一个文件

下表格出了常用的一些格式化样式中的动词及功能。

动词功能
%v按值的本来值输出
      %+v在 %v 的基础上,对结构体字段名和值进行展开
      %#v输出 Go 语言语法格式的值
      %T 输出 Go 语言语法格式的类型和值
      %%输出 %% 本体
      %b整型以二进制方式显示
      %o整型以八进制方式显示
      %d整型以十进制方式显示
      %x整型以 十六进制显示
      %X整型以十六进制、字母大写方式显示
      %UUnicode 字符
      %f浮点数
      %p指针,十六进制方式显示