本文整理了Go語言的標準輸出流(fmt.Printf)在打印到屏幕時的格式化輸出操做。post

在這裏按照佔位符將被替換的變量類型劃分,更方便查詢和記憶。spa

General(通用佔位符)

佔位符 說明
%v 以默認的方式打印變量的值
%T 打印變量的類型
%% 字面上的百分號,並不是值的佔位符

Integer(整型)

佔位符 說明
%+d 帶符號的整型
%q 打印單引號
%o 不帶零的八進制
%#o 帶零的八進制
%x 小寫的十六進制
%X 大寫的十六進制
%#x 帶0x的十六進制
%U 打印Unicode字符
%#U 打印帶字符的Unicode
%b 打印整型的二進制

Integer width(指定長度的整型,以5爲例)

佔位符 說明
%5d 整型長度爲5,右對齊,左邊留白
%-5d 左對齊右邊留白
%05d 數字前面補零

Float(浮點數)

佔位符 說明
%f (=%.6f) 6位小數點
%e (=%.6e) 6位小數點(科學計數法)
%g 用最少的數字來表示
%.3g 最多3位數字來表示
%.3f 最多3位小數來表示

String(字符串)

佔位符 說明
%s 正常輸出字符串
%q 字符串帶雙引號,字符串中的引號帶轉義符
%#q 字符串帶反引號,若是字符串內有反引號,就用雙引號代替
%x 將字符串轉換爲小寫的16進制格式
%X 將字符串轉換爲大寫的16進制格式
% x 帶空格的16進制格式

String Width (指定長度的字符串,以5爲例)

佔位符 說明
%5s 最小寬度爲5
%-5s 最小寬度爲5(左對齊)
%.5s 最大寬度爲5
%5.7s 最小寬度爲5,最大寬度爲7
%-5.7s 最小寬度爲5,最大寬度爲7(左對齊)
%5.3s 若是寬度大於3,則截斷
%05s 若是寬度小於5,就會在字符串前面補零

Struct(結構體)

佔位符 說明
%v 以默認的方式打印變量的值
%+v 在打印結構體時,會添加字段名
%#v 在打印結構體時,會添加字段名和包名

Boolean(布爾值)

佔位符 說明
%t 打印true或false

Pointer(指針)

佔位符 說明
%p 帶0x的指針
%#p 不帶0x的指針