diff --git a/base/fmt/main.go b/base/fmt/main.go new file mode 100644 index 0000000..fdc4a61 --- /dev/null +++ b/base/fmt/main.go @@ -0,0 +1,59 @@ +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) +}