🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
golang 的fmt 包实现了格式化I/O函数 ``` func Print(a ...interface{}) (n int, err error) func Sprint(a ...interface{}) string func Fprint(w io.Writer, a ...interface{}) (n int, err error) func Println(a ...interface{}) (n int, err error) func Sprintln(a ...interface{}) string func Fprintln(w io.Writer, a ...interface{}) func Printf(format string, a ...interface{}) (n int, err error) func Sprintf(format string, a ...interface{}) string func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) ``` **按照输出格式划分** 如果后缀是"`f`", 则指定format格式输出,如果后缀是"`ln`",则换行输出。 | 函数 | 区别 | | --- | --- | | Println、Fprintln、Sprintln | 输出内容时会加上换行符 | | Print、Fprint、Sprint | 输出内容时不加上换行符 | | Printf、Fprintf、Sprintf | 按照指定格式化文本输出内容 | **按照输出终端划分** 如果前缀是"`F`", 则指定了`io.Writer`,如果前缀是"`S`", 则是输出到字符串 | 函数 | 区别 | | --- | --- | | Print、Printf、Println | 输出内容到标准输出os.Stdout | | Fprint、Fprintf、Fprintln | 输出内容到指定的io.Writer | | Sprint、Sprintf、Sprintln | 输出内容到字符串 | **format格式** | 格式 | 含义 | 示例 | 结果 | --- | --- | --- | --- | %% | 一个%字面量 | fmt.Printf("输出%%") | 输出% | %b | 一个二进制整数值(基数为2),或者是一个(高级的)用科学计数法表示的指数为2的浮点数 | fmt.Printf("输出二进制:%b", 5) | 输出二进制:101 | %c | 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符 | fmt.Printf("数字转ASCII码:%c", 65) | 数字转ASCII码:A | %d | 一个十进制数值(基数为10) | fmt.Println(fmt.Sprintf("字符串拼接数字:%d", 100)) | 字符串拼接数字:100 | %e | 以科学记数法e表示的浮点数或者复数值 | fmt.Printf("%e", 3.1415926) | 3.141593e+00 | %E | 以科学记数法E表示的浮点数或者复数值 | fmt.Printf("%E", 3.1415926) | 3.141593E+00 | %f | 以标准记数法表示的浮点数或者复数值 | fmt.Printf("%.7f", 3.1415926) | 3.1415926 | %g | 以%e或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 | fmt.Printf("%g", 3.1415926) | 3.1415926 | %G | 以%E或者%f表示的浮点数或者复数,任何一个都以最为紧凑的方式输出 | fmt.Printf("%G", 3.1415926) | 3.1415926 | %o | 一个以八进制表示的数字(基数为8) | fmt.Printf("%o", -233) | -351 | %p | 以十六进制(基数为16)表示的一个值的地址,前缀为0x,字母使用小写的a-f表示 | | | %q | 使用Go语法以及必须时使用转义,以双引号括起来的字符串或者字节切片\[\]byte,或者是以单引号括起来的数字 | | | %s | 直接输出字符串或者[]byte | fmt.Printf("%s", "hello world") | hello world | %t | 以true或者false输出的布尔值 | fmt.Printf("%t", true) | true | %T | 使用Go语法输出的值的类型 | fmt.Printf("%T", 123) | int | %U | 一个用Unicode表示法表示的整型码点,默认值为4个数字字符 | fmt.Printf("%U", 567) | U+0237 | %v | 值的默认格式表示。当输出结构体时,扩展标志(%#v)会添加字段名 | type person struct{<br>name string<br>}<br>func main() {<br>v := person{}<br>fmt.Printf("%#v", v)<br>} | main.person{name:""} | %x | 以十六进制表示的整型值(基数为十六),使用a-f表示 | | | %X | 以十六进制表示的整型值(基数为十六),使用A-F表示 | |