/* %v 輸出結構體 {10 30} %+v 輸出結構體顯示字段名 {one:10 tow:30} %#v 輸出結構體源代碼片斷 main.Point{one:10, tow:30} %T 輸出值的類型 main.Point %t 輸出格式化布爾值 true %d`輸出標準的十進制格式化 100 %b`輸出標準的二進制格式化 99 對應 1100011 %c`輸出定整數的對應字符 99 對應 c %x`輸出十六進制編碼 99 對應 63 %f`輸出十進制格式化 99 對應 63 %e`輸出科學技科學記數法表示形式 123400000.0 對應 1.234000e+08 %E`輸出科學技科學記數法表示形式 123400000.0 對應 1.234000e+08 %s 進行基本的字符串輸出 "\"string\"" 對應 "string" %q 源代碼中那樣帶有雙引號的輸出 "\"string\"" 對應 "\"string\"" %p 輸出一個指針的值 &jgt 對應 0xc00004a090 % 後面使用數字來控制輸出寬度 默認結果使用右對齊而且經過空格來填充空白部分 %2.2f 指定浮點型的輸出寬度 1.2 對應 1.20 %*2.2f 指定浮點型的輸出寬度對齊,使用 `-` 標誌 1.2 對應 *1.20 */ jgt := Point{10,30} fmt.Printf("%v\n",jgt) // {10 30} fmt.Printf("%+v\n",jgt) // {one:10 tow:30} fmt.Printf("%#v\n",jgt) // main.Point{one:10, tow:30} fmt.Printf("%T\n",jgt) // main.Point fmt.Printf("%t\n",true) // true fmt.Printf("%d\n",100) // 100 fmt.Printf("%b\n",99) // 99 對應 1100011 fmt.Printf("%c\n",99) // 99 對應 c fmt.Printf("%x\n",99) // 99 對應 63 fmt.Printf("%f\n",99.9) // 99.9 對應 99.900000 fmt.Printf("%e\n",123400000.0) // 123400000.0 對應 1.234000e+08 fmt.Printf("%E\n",123400000.0) // 123400000.0 對應 1.234000e+08 fmt.Printf("%s\n","\"string\"") // "\"string\"" 對應 "string" fmt.Printf("%q\n","\"string\"") // "\"string\"" 對應 "string" fmt.Printf("%p\n",&jgt) // &jgt 對應 0xc00004a090 fmt.Printf("%6d\n",8) // &jgt 對應 0xc00004a090 fmt.Printf("%2.2f\n",1.2 ) // 1.2 對應 1.20 fmt.Printf("*%2.2f\n",1.2 ) // 1.2 對應 *1.20 // 輸出格式化的字符串。`Sprintf` 則格式化並返回一個字 符串而不帶任何輸出。 s := fmt.Sprintf("是字符串 %s ","string") fmt.Println(s) // 是字符串 %s 對應 是字符串 string // 你可使用 `Fprintf` 來格式化並輸出 fmt.Fprintf(os.Stderr, "格式化 %s\n", "error")