golang---fmt格式“預留位置”

來源:互聯網
上載者:User

golang 的fmt 包實現了格式化I/O函數,類似於C的 printf 和 scanf。

// 定義樣本類型和變數type Human struct {    Name string}var people = Human{Name:"zhangsan"}

1、普通預留位置:

預留位置     說明                           舉例                   輸出%v      相應值的預設格式。            Printf("%v", people)   {zhangsan},%+v     列印結構體時,會添加欄位名     Printf("%+v", people)  {Name:zhangsan}%#v     相應值的Go文法表示            Printf("#v", people)   main.Human{Name:"zhangsan"}%T      相應值的類型的Go文法表示       Printf("%T", people)   main.Human%%      字面上的百分比符號,並非值的預留位置  Printf("%%")            %

2、布爾預留位置:

預留位置       說明                舉例                     輸出%t          true 或 false。     Printf("%t", true)       true

3、整數預留位置:

預留位置     說明                                  舉例                       輸出%b      二進位表示                             Printf("%b", 5)             101%c      相應Unicode碼點所表示的字元              Printf("%c", 0x4E2D)        中%d      十進位表示                             Printf("%d", 0x12)          18%o      八進位表示                             Printf("%d", 10)            12%q      單引號圍繞的字元字面值,由Go文法安全地轉義  Printf("%q", 0x4E2D)        '中'%x      十六進位表示,字母形式為小寫 a-f          Printf("%x", 13)             d%X      十六進位表示,字母形式為大寫 A-F          Printf("%x", 13)             D%U      Unicode格式:U+1234,等同於 "U+%04X"    Printf("%U", 0x4E2D)         U+4E2D

4、浮點數和複數的組成部分(實部和虛部)

預留位置     說明                                             舉例                   輸出%b      無小數部分的,指數為二的冪的科學計數法,        與 strconv.FormatFloat 的 'b' 轉換格式一致。       例如 -123456p-78%e      科學計數法,例如 -1234.456e+78                     Printf("%e", 10.2)      1.020000e+01%E      科學計數法,例如 -1234.456E+78                     Printf("%e", 10.2)      1.020000E+01%f      有小數點而無指數,例如 123.456                      Printf("%f", 10.2)      10.200000%g      根據情況選擇 %e 或 %f 以產生更緊湊的(無末尾的0)輸出   Printf("%g", 10.20)     10.2%G      根據情況選擇 %E 或 %f 以產生更緊湊的(無末尾的0)輸出   Printf("%G", 10.20+2i)  (10.2+2i)

5、字串與位元組切片:

預留位置     說明                              舉例                           輸出%s      輸出字串表示(string類型或[]byte)   Printf("%s", []byte("Go語言"))  Go語言%q      雙引號圍繞的字串,由Go文法安全地轉義  Printf("%q", "Go語言")         "Go語言"%x      十六進位,小寫字母,每位元組兩個字元      Printf("%x", "golang")         676f6c616e67%X      十六進位,大寫字母,每位元組兩個字元      Printf("%X", "golang")         676F6C616E67

6、指標:

預留位置         說明                      舉例                             輸出%p      十六進位表示,首碼 0x          Printf("%p", &people)             0x4f57f0

7、其他標記:

預留位置      說明                             舉例          輸出+      總列印數值的加號或減號;對於%q(%+q)保證只輸出ASCII編碼的字元。                                            Printf("%+q", "中文")  "\u4e2d\u6587"-      在右側而非左側填充空格(靠左對齊該地區)#      備用格式:為八進位添加前置 0(%#o)      Printf("%#U", '中')      U+4E2D       為十六進位添加前置 0x(%#x)或 0X(%#X),為 %p(%#p)去掉前置 0x;       如果可能的話,%q(%#q)會列印原始 (即反引號圍繞的)字串;       如果是可列印字元,%U(%#U)會寫出該字元的       Unicode 編碼形式(如字元 x 會被列印成 U+0078 'x')。' '    (空格)為數值中省略的加號或減號留出空白(% d);       以十六進位(% x, % X)列印字串或切片時,在位元組之間用空格隔開0      填充前置的0而非空格;對於數字,這會將填充移到加號或減號之後

 

golang沒有 '%u' 點位符,若整數為無符號類型,預設就會被列印成無符號的。

 

寬度與精度的控制格式以Unicode碼點為單位。寬度為該數值佔用地區的最小寬度;精度為小數點之後的位元。
運算元的類型為int時,寬度與精度都可用字元 '*' 表示。

對於 %g/%G 而言,精度為所有數位總數,例如:123.45,%.4g 會列印123.5,(而 %6.2f 會列印123.45)。

%e 和 %f 的預設精度為6

對大多數的數實值型別而言,寬度為輸出的最小字元數,如果必要的話會為已格式化的形式填充空格。

而以字串類型,精度為輸出的最大字元數,如果必要的話會直接截斷。

 

轉自:部落格園 golang fmt格式“預留位置”

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.