內容:記錄go的printf的格式化引數列表
%v 值的預設格式。
預設的格式是:
bool:
%t int
, int8 :
%d uint, uint8 :
%d,%x (
if printed with %#v)
float32, complex64 :
%gstring:
%schan:
%p pointer:%p%
+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 無小數部分的,指數為二的冪的科學計數法
%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 (用於指標)
對於復合物件,使用如下規則進行列印:
struct:
array, slice:
[elem0 elem1 ...
] maps: map[key1:value1 key2:value2]
pointer to above:&,
&,&map[
]寬度和精度:
寬度是在%之後的值,如果沒有指定,則使用該值的預設值,
精度是跟在寬度之後的值,如果沒有指定,也是使用要列印的值的預設精度.
%f:default width,
default precision
%9f width 9
,default precision
%.2f
default width, precision 2
%9.2f width 9
, precision 2
%9.f width 9
, precision 0
注意:1、對數值而言,寬度為該數值占用區域的最小寬度;精度為小數點之後的位數。
2、但對於 %g/
%g 而言,精度為所有數字的總數。
例如,對於123.45,格式 %
6.2f會列印123.45,而 %
.4g 會列印123.5。%e和%f的預設精度為6;
但對於 %g 而言,它的預設精度為確定該值所必須的最小位數。
對大多數值而言:寬度為輸出的最小字元數,如果必要的話會為已格式化的形式填充空格。
對字串而言:精度為輸出的最大字元數,如果必要的話會直接截斷。
寬度是指"必要的最小寬度"
. 若結果字串的寬度超過指定寬度時, 指定寬度就會失效。
若將寬度指定為`*'時, 將從引數中取得寬度值,其實這個在其它語言也有類似用法
其它:+ 總列印數值的正負號;對於%q(%
+q)保證只輸出ascii編碼的字元。
- 左對齊
# 備用格式:為八進位制新增前導 0(%#o),為十六進製制新增前導 0x(%#x)或0x(%#x),為
%p(%#p)去掉前導 0x;對於 %q,若 strconv.canbackquote 返回 true,就會列印原始
(即反引號圍繞的)字串;如果是可列印字元,%u(%#u)會寫出該字元的unicode編碼形式
(如字元 x 會被列印成 u+
0078
'x')。
' ' (空格)為數值中省略的正負號留出空白(% d);以十六進製制(% x,
% x)列印字串或
切片時,在位元組之間用空格隔開
0 填充前導的0而非空格;對於數字,這會將填充移到正負號之後
print 函式不接受任何格式化,它等價於對每乙個運算元都應用 %v。
println 會在運算元之間插入空白,並在末尾追加乙個換行符
C語言 printf格式化輸出,引數詳解
int main int argc,char argv double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n ins...
C語言 printf格式化輸出,引數詳解
int main int argc,char ar double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n inser...
C語言 printf格式化輸出,引數詳解
int main int argc,char ar double inserttime1 12321 printf 15s n inserttime 左對齊,15位長度,不夠補空格 printf 15s n inserttime 右對齊,15位長度,不夠補空格 printf 015s n inser...