非零基础快速入门 Go 语言_Printf 格式化参数总结
非零基础快速入门 Go 语言_Printf 格式化参数总结
fmt 的三大函数对比
fmt 标准库是我们在学习和编写 Go 代码,使用最频繁的库之一。
在新手阶段,通常会使用 fmt 包的 打印函数来查看变量的信息。
这样的打印函数,有三个
- fmt.Print:正常打印字符串和变量,不会进行格式化,不会自动换行,需要手动添加 进行换行,多个变量值之间不会添加空格
- fmt.Println:正常打印字符串和变量,不会进行格式化,多个变量值之间会添加空格,并且在每个变量值后面会进行自动换行
- fmt.Printf:可以按照自己需求对变量进行格式化打印。需要手动添加 进行换行
Printf 的占位符
Printf 占位符是掌握 Printf的核心要点
通用占位符
-
%v:以值的默认格式打印 %+v:类似%v,但输出结构体时会添加字段名 %#v:值的Go语法表示 %T:打印值的类型
type Profile struct { name string gender string age int } func main() { var people = Profile{ name:"wangbm", gender: "male", age:27} fmt.Printf("%v ", people) // output: {wangbm male 27} fmt.Printf("%T ", people) // output: main.Profile // 打印结构体名和类型 fmt.Printf("%#v ", people) // output: main.Profile{name:"wangbm", gender:"male", age:27} fmt.Printf("%+v ", people) // output: {name:wangbm gender:male age:27} }
打印布尔值
func main() { fmt.Printf("%t ", true) //output: true fmt.Printf("%t ", false) //output: false }
打印字符串
-
%s:输出字符串表示(string类型或[]byte) %q:双引号围绕的字符串,由Go语法安全地转义 %x:十六进制,小写字母,每字节两个字符 %X:十六进制,大写字母,每字节两个字符
func main() { fmt.Printf("%s ", []byte("Hello, Golang")) // output: Hello, Golang fmt.Printf("%s ", "Hello, Golang") // output: Hello, Golang fmt.Printf("%q ", []byte("Hello, Golang")) // output: "Hello, Golang" fmt.Printf("%q ", "Hello, Golang") // output: "Hello, Golang" fmt.Printf("%q ", `hello world`) // output: "hello \r\n world" fmt.Printf("%x ", "Hello, Golang") // output: 48656c6c6f2c20476f6c616e67 fmt.Printf("%X ", "Hello, Golang") // output: 48656c6c6f2c20476f6c616e67 }
打印指针 结果是地址
func main() { var people = Profile{name:"wangbm", gender: "male", age:27} fmt.Printf("%p", &people) // output: 0xc0000a6150 }
打印整型
-
%b:以二进制打印 %d:以十进制打印 %o:以八进制打印 %x:以十六进制打印,使用小写:a-f %X:以十六进制打印,使用大写:A-F %c:打印对应的的unicode码值 %q:该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %U:该值对应的 Unicode格式:U+1234,等价于”U+%04X”
更多待补充 只要常用的…
上一篇:
IDEA上Java项目控制台中文乱码