1. 程式人生 > 程式設計 >golang 格式化輸入輸出操作

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格式(以獲得更簡潔、準確的輸出)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。