package main
import (
"fmt"
//"time"
)
type Test struct {
a int
b float64
c string
}
func main() {
//各类型通用:
// %v 值的默认格式表示
// %+v 类似%v,但输出结构体时会添加字段名
// %#v 值的Go语法表示
// %T 值的类型的Go语法表示
// %% 百分号
t := &Test{5, -3.14, "hello world"}
fmt.Printf("%v\n", t) //值的默认格式输出
fmt.Printf("%+v\n", t) //输出结构体时显示键值对
fmt.Printf("%#v\n", t) //值的GO语法表示
fmt.Printf("%T\n", t) //输出类型
fmt.Printf("hello %%") //字面上的%并非占位符,只是相当于\转义%的
//布尔占位符
fmt.Println(fmt.Sprintf("%t\n", true)) //布尔类型,单词true或false
//整数占位符
fmt.Printf("%b\n", 2) //二进制表示
fmt.Printf("%c\n", 0x4E2D) //相应Unicode码点所表示的字符
fmt.Printf("%d\n", 0x12) //十进制表示
fmt.Printf("%o\n", 10) //八进制表示
fmt.Printf("%q\n", 0x4E2D) //单引号围绕的字符字面值,由Go语法安全地转义
fmt.Printf("%x\n", 13) //十六进制表示,字母形式为小写 a-f
fmt.Printf("%X\n", 13) //十六进制表示 字母形式为大写A-F
fmt.Printf("%U\n", 0x4E2D) //Unicode格式:U+1234,等同于 "U+%04X"
//浮点数和复数的组成部分(实部和虚部)
fmt.Printf("%b\n", 3) //无小数部分的,指数为二的幂的科学计数法。貌似是二进制
fmt.Printf("%e\n", 10.2) //科学计数法,不明
fmt.Printf("%E\n", 10.2) //科学计数法,不明
fmt.Printf("%f\n", 10.200) //小数,默认后面后有6位的精度
fmt.Printf("%5.2f\n", 10.1234) //小数宽度是5 精度是2
fmt.Printf("%g\n", 10.200) //把小数后面的零干掉
fmt.Printf("%G", 10.20) //把小数后面的零干掉
//字符串与字节切片
fmt.Printf("%s\n", []byte("你好世界")) //输出字符串表示,string或[]byte
fmt.Printf("%q\n", "你好世界") //双引号围绕的字符串,由GO语法安全的转义
fmt.Printf("%x\n", "golang") //十六进制,小写字母,每字节两个字符
fmt.Printf("%X", "golang") //十六进制,大写字母,每字节两个字符
//指针
fmt.Printf("%p", t) //十六进制表示,前缀0x
}