以结构体为例
type point struct{
x int
y int
}
均可通过Printf
来格式化输出
格式化指令 | 含义 |
---|---|
%b | 将一个整数格式化为二进制表达式 |
%c | 一个unicode的字符 |
%d | 10进制数值,可以使用在 % 后面使用数字来控制输出宽度,默认结果使用右对齐并且通过空格来填充空白部分,要左对齐,使用 - 标志。 |
%o | 8进制数值 |
%x | 小写的16进制 |
%X | 大写的16进制 |
%U | 一个unicode表示法表示的整形码值 |
%v | 格式化输出内容: 输出:{1 2} |
%+v | 格式化输出内容:输出:{x:1 y:2} |
%#v | 格式化输出内容:输出:main.point{x:3, y:3} |
%T | 打印值类型 |
%f | 以浮点数形式 |
%e | 科学记数法表示数字 |
%E | 科学记数法表示数字 |
%s | 字符串 |
%q | 输出带引号的字符串 |
%p | 输出指针地址 |
package main
import (
"fmt"
)
func main() {
p := point{
x: 1,
y: 2,
}
fmt.Printf("%b\n", 520) //1000001000
fmt.Printf("%o\n", 520) //1010
fmt.Printf("%0x\n", 520) //208
fmt.Printf("%v \n",p) //{1 2}
fmt.Printf("%+v \n",p) //{x:1 y:2}
fmt.Printf("%#v \n",p) //main.point{x:3, y:3}
te()
fmt.Printf("%T\n",p) //main.point{x:3, y:3}
fmt.Printf("%t\n", true)
fmt.Printf("%e\n", 1234000000.0) //1.234000e+09
fmt.Printf("%E\n", 1234000000.0) //1.234000E+09
fmt.Printf("%q\n", "I miss u") //"I miss u"
fmt.Printf("%s\n", "I miss u") //I miss u
fmt.Printf("%p\n", &p) //0xc0000b4010
fmt.Printf("|%6d|%6d|\n", 52, 1314) //| 52| 1314|
fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45) //| 1.20| 3.45|
fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45) //|1.20 |3.45 |
}
func te() {
p := point{
x: 3,
y: 3,
}
fmt.Printf("%#v \n",p) //main.point{x:1, y:2}
}
type point struct {
x int
y int
}