package main import "fmt" type typeTest struct { text string } func main() { var a = 1 << 10 fmt.Printf("var a = 1 << 10\n") // %T 查看类型 // %% 转义% fmt.Printf("类型 %%T => %T\n", a) // %b 输出二进制 fmt.Printf("二进制 %%b: %b\t", a) // %o 输出八进制 fmt.Printf("八进制 %%o: %o\t", a) // %d 输出十进制 fmt.Printf("十进制 %%d: %d\t", a) // %x 输出十六进制 fmt.Printf("十六进制 %%x: %x\n", a) fmt.Println("=========================================================") var b float64 = 1.0 << 10 fmt.Printf("var b float64 = 1.0 << 10\n") fmt.Printf("类型 %%T => %T\n", b) // %e 科学计数法,例如 -1234.456e+78 // %E 科学计数法,例如 -1234.56E+78 fmt.Printf("科学计数法 %%e: %e\t", b) // %f 有小数点而无指数,例如 123.4556 fmt.Printf("浮点数 %%f: %f\t", b) // %g 根据情况选择 %e 或 %f 以产生更紧凑的输出 // %G 根据情况选择 %E 或 %f 以产生更紧凑的输出 fmt.Printf("自动选择 %%e 或 %%f %%g: %g\n", b) fmt.Println("=========================================================") var s = "text" fmt.Printf("var s = \"text\"\n") fmt.Printf("类型 %%T => %T\n", s) // %s 输出字符串 fmt.Printf("字符串 %%s: %s\n", s) fmt.Println("=========================================================") var t = typeTest{text: s} fmt.Printf("var t = typeTest{text: s}\n") fmt.Printf("类型 %%T => %T\n", t) // %v 按默认格式输出 fmt.Printf("按默认格式输出 %%v: %v\t", t) // %+v 在%v的基础上额外输出字段名 fmt.Printf("在%%v的基础上额外输出字段名 字符串 %%+v: %+v\t", t) // %#v 在%+v的基础上额外输出类型名 fmt.Printf("在%%+v的基础上额外输出类型名 %%#v: %#v\t", t) }