fmt.Printf中的格式化動作('verb')
源自C語言但更簡單
通用:
%v值的預設格式表示 %+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無小數部分、二進位制指數的科學計數法,如-123456p-78;參見strconv.FormatFloat %e科學計數法,如-1234.456e+78 %E科學計數法,如-1234.456E+78 %f有小數部分但無指數部分,如123.456 %F等價於%f %g根據實際情況採用%e或%f格式(以獲得更簡潔、準確的輸出) %G根據實際情況採用%E或%F格式(以獲得更簡潔、準確的輸出)
字串和[]byte:
%s直接輸出字串或者[]byte %q該值對應的雙引號括起來的go語法字串字面值,必要時會採用安全的轉義表示 %x每個位元組用兩字元十六進位制數表示(使用a-f) %X每個位元組用兩字元十六進位制數表示(使用A-F)
指標:
%p表示為十六進位制,並加上前導的0x
寬度通過一個緊跟在百分號後面的十進位制數指定,如果未指定寬度,則表示值時除必需之外不作填充。精度通過(可選的)寬度後跟點號後跟的十進位制數指定。如果未指定精度,會使用預設精度;如果點號後沒有跟數字,表示精度為0。舉例如下:
%f:預設寬度,預設精度 %9f寬度9,預設精度 %.2f預設寬度,精度2 %9.2f寬度9,精度2 %9.f寬度9,精度0