Printf 格式化输出
fmt 官方文档 介绍了各个格式对应的占位符。
通用打印
package main
import "fmt"
type person struct {
name string
height int
}
func main() {
// 通用打印
p := person{
name: "letian",
height: 180,
}
fmt.Printf("%v\n", 123)
fmt.Printf("%v\n", true)
fmt.Printf("%v\n", p)
}
运行后输出:
123
true
{letian 180}
打印整数
package main
import "fmt"
func main() {
// 打印 int
fmt.Printf("%d\n", 123)
fmt.Printf("%5d\n", 123) // 至少5位,不全则补空格
fmt.Printf("%05d\n", 123) // 至少5位,不全则补0
fmt.Printf("%+d\n", 123) // 带符号
fmt.Printf("%b\n", 123) // 二进制
fmt.Printf("%x\n", 123) // 16进制,字母小写
fmt.Printf("%X\n", 123) // 16进制,字母大写
}
运行后输出:
123
123
00123
+123
1111011
7b
7B
打印浮点数
package main
import "fmt"
func main() {
// 浮点数
fmt.Printf("%f\n", 1.2345665)
fmt.Printf("%.2f\n", 1.2345665) // 仅展示小数点后两位
}
运行后输出:
1.234566
1.23
打印 bool
package main
import "fmt"
func main() {
// 打印 bool
fmt.Printf("%t\n", true)
fmt.Printf("%t\n", false)
}
运行后输出:
true
false
打印字符串
package main
import "fmt"
func main() {
// 字符串
fmt.Printf("%s\n", "Hello")
fmt.Printf("%q\n", "Hello") // 带双引号
}
运行后输出:
Hello
"Hello"
打印指针
package main
import "fmt"
func main() {
// 指针
i := 0
fmt.Printf("%p\n", &i)
}
运行后输出:
0xc000094000
打印 struct
package main
import "fmt"
type person struct {
name string
height int
}
func main() {
// 打印 struct
p := person{
name: "letian",
height: 180,
}
fmt.Printf("%v\n", p)
fmt.Printf("%+v\n", p)
fmt.Printf("%#v\n", p)
}
运行后输出:
{letian 180}
{name:letian height:180}
main.person{name:"letian", height:180}
打印变量类型
package main
import "fmt"
type person struct {
name string
height int
}
func main() {
// 打印 变量类型
p := person{
name: "letian",
height: 180,
}
fmt.Printf("%T\n", 1)
fmt.Printf("%T\n", p)
}
运行后输出:
int
main.person
Println
示例:
package main
import "fmt"
type person struct {
name string
height int
}
func main() {
p := person{
name: "letian",
height: 180,
}
fmt.Println("112", 1, "Hello", p)
fmt.Println(1.234)
}
运行结果:
112 1 Hello {letian 180}
1.234