golang中列印格式化的一些佔位符
阿新 • • 發佈:2021-09-27
package main import ( "fmt" ) func main() { var a byte = 255 // byte = uint8 rune = int32 fmt.Printf("%v:%T\n", a, a) // 255:uint8 var b int = 380 // 不足位數前面補0 fmt.Printf("%05d:%T\n", b, b) // 00380:int fmt.Printf("%010d:%T\n", b, b) // 0000000380:int var c int = 88 // 十進位制 -》 二進位制 ret1 := fmt.Sprintf("%T:%b\n", c, c) // int:1011000 // 十進位制 -》 十六進位制 ret2 := fmt.Sprintf("%T:%x\n", c, c) // int:58 fmt.Println(ret1, ret2) } /* 附錄: [一般] %v 相應值的預設格式。在列印結構體時,“加號”標記(%+v)會新增欄位名 %#v 相應值的 Go 語法表示 %T 相應值的型別的 Go 語法表示 %% 字面上的百分號,並非值的佔位符 [布林] %t 單詞 true 或 false。 [整數] %b 二進位制表示 %c 相應 Unicode 碼點所表示的字元 %d 十進位制表示 %o 八進位制表示 %q 單引號圍繞的字元字面值,由 Go 語法安全地轉義 %x 十六進位制表示,字母形式為小寫 a-f %X 十六進位制表示,字母形式為大寫 A-F %U Unicode 格式:U+1234,等同於 "U+%04X" [浮點數及其複合構成] %b 無小數部分的,指數為二的冪的科學計數法,與 strconv.FormatFloat 的 'b' 轉換格式一致。例如 -123456p-78 %e 科學計數法,例如 -1234.456e+78 %E 科學計數法,例如 -1234.456E+78 %f 有小數點而無指數,例如 123.456 %g 根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的 0)輸出 %G 根據情況選擇 %E 或 %f 以產生更緊湊的(無末尾的 0)輸出 [字串與位元組切片] %s 字串或切片的無解譯位元組 %q 雙引號圍繞的字串,由 Go 語法安全地轉義 %x 十六進位制,小寫字母,每位元組兩個字元 %X 十六進位制,大寫字母,每位元組兩個字元 [指標] %p 十六進位制表示,字首 0x [其它標記] + 總列印數值的正負號;對於 %q(%+q)保證只輸出 ASCII 編碼的字元。 - 在右側而非左側填充空格(左對齊該區域) # 備用格式:為八進位制新增前導 0(%#o),為十六進位制新增前導 0x(%#x)或 0X(%#X),為 %p(%#p)去掉前導 0x;如果可能的話,%q(%#q)會列印原始(即反引號圍繞的)字串;如果是可列印字元,%U(%#U)會寫出該字元的 Unicode 編碼形式(如字元 x 會被列印成 U+0078 'x')。 ' ' (空格)為數值中省略的正負號留出空白(% d); 以十六進位制(% x, % X)列印字串或切片時,在位元組之間用空格隔開:fmt.Printf("% x\n", "Hello") */