1. 程式人生 > 其它 >golang中列印格式化的一些佔位符

golang中列印格式化的一些佔位符

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")
*/