golang 格式化輸入輸出操作
格式化字串由佔位符和普通字元組合而成。
佔位符由'%'打頭,動詞結尾。
佔位符由五類元素組成: 標誌位(flag),寬度,精度,引數索引,以及動詞。
除了最後的動詞之外,其他元素均可省略。
看下面的常用型別的例子描述:
預設格式和型別
Value: []int64{0,1}
格式化後的效果 | 動詞 | 描述 |
---|---|---|
[0 1] | %v | 預設格式 |
[]int64{0,1} | %#v | go語法列印 |
[]int64 | %T | 型別列印 |
整型(縮排,進位制型別,正負符號)
Value: 15
格式化後的效果 | 動詞 | 描述 |
---|---|---|
15 | %d | 十進位制 |
+15 | %+d | 必須顯示正負符號 |
␣␣15 | %4d | Pad空格(寬度為4,右對齊) |
15␣␣ | %-4d | Pad空格 (寬度為4,左對齊) |
0015 | %04d | Pad空格(寬度為4) |
1111 | %b | 二進位制 |
17 | %o | 八進位制 |
f | %x | 16進位制,小寫 |
F | %X | 16進位制,大寫 |
0xf | %#x | 16進位制,帶進位制標誌0x |
字元(有引號,Unicode)
Value: 65 (Unicode letter A)
格式化後的效果 | 動詞 | 描述 |
---|---|---|
A | %c | 字元 |
'A' | %q | 有引號的字元 |
U+0041 | %U | Unicode |
U+0041 'A' | %#U | Unicode 有引號 |
布林(true/false)
使用 %t 來格式化一個布林型別為true或false
指標(hex)
使用 %p 來格式化一個指標為16進位制的顯示方式
浮點(縮排,精度,科學計數)
Value: 123.456
格式化後的效果 | 動詞 | 描述 |
---|---|---|
1.234560e+02 | %e | 科學計數 |
123.456000 | %f | 十進位制小數 |
123.46 | %.2f | 預設寬度,精度為2 |
␣␣123.46 | %8.2f | 寬度為8,精度為2 |
123.456 | %g | 根據情況選擇%e或%f,末尾沒有0 |
字串or 位元組slice (引號,縮排,16進位制)
Value: "café"
格式化後的效果 | 動詞 | 描述 |
---|---|---|
café | %s | 字串原樣輸出 |
␣␣café | %6s | 寬度為6,右對齊 |
café␣␣ | %-6s | 寬度為6,左對齊 |
"café" | %q | 帶引號的字串 |
636166c3a9 | %x | 16進位制的形式列印每個位元組 |
63 61 66 c3 a9 | % x | 16進位制的形式列印每個位元組,位元組間帶空格 |
補充:golang中格式化符號說明
%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格式(以獲得更簡潔、準確的輸出)
以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。