golang 格式化輸入輸出操作
格式化字符串由占位符和普通字符組合而成。
占位符由'%'打頭,動詞結尾。
占位符由五類元素組成: 標志位(flag),寬度,精度,參數(shù)索引,以及動詞。
除了最后的動詞之外,其他元素均可省略。
看下面的常用類型的例子描述:
缺省格式和類型
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進制的顯示方式
浮點(縮進, 精度, 科學計數(shù))
Value: 123.456
| 格式化后的效果 | 動詞 | 描述 |
|---|---|---|
| 1.234560e+02 | %e | 科學計數(shù) |
| 123.456000 | %f | 十進制小數(shù) |
| 123.46 | %.2f | 缺省寬度,精度為2 |
| ␣␣123.46 | %8.2f | 寬度為8,精度為2 |
| 123.456 | %g | 根據(jù)情況選擇%e或%f,末尾沒有0 |
字符串or 字節(jié)slice (引號, 縮進, 16進制)
Value: "café"
| 格式化后的效果 | 動詞 | 描述 |
|---|---|---|
| café | %s | 字符串原樣輸出 |
| ␣␣café | %6s | 寬度為6,右對齊 |
| café␣␣ | %-6s | 寬度為6,左對齊 |
| "café" | %q | 帶引號的字符串 |
| 636166c3a9 | %x | 16進制的形式打印每個字節(jié) |
| 63 61 66 c3 a9 | % x | 16進制的形式打印每個字節(jié),字節(jié)間帶空格 |
補充:golang中格式化符號說明
%v 值的默認格式表示
%+v 類似%v,但輸出結構體時會添加字段名
%#v 值的Go語法表示
%T 值的類型的Go語法表示
%% 百分號
布爾值:
%t 單詞true或false
整數(shù):
%b 表示為二進制
%c 該值對應的unicode碼值
%d 表示為十進制
%o 表示為八進制
%q 該值對應的單引號括起來的go語法字符字面值,必要時會采用安全的轉(zhuǎn)義表示
%x 表示為十六進制,使用a-f
%X 表示為十六進制,使用A-F
%U 表示為Unicode格式:U+1234,等價于"U+%04X"
浮點數(shù)與復數(shù)的兩個組分:
%b 無小數(shù)部分、二進制指數(shù)的科學計數(shù)法,如-123456p-78;參見strconv.FormatFloat
%e 科學計數(shù)法,如-1234.456e+78
%E 科學計數(shù)法,如-1234.456E+78
%f 有小數(shù)部分但無指數(shù)部分,如123.456
%F 等價于%f
%g 根據(jù)實際情況采用%e或%f格式(以獲得更簡潔、準確的輸出)
%G 根據(jù)實際情況采用%E或%F格式(以獲得更簡潔、準確的輸出)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
Golang實現(xiàn)自定義時間結構體并支持Json&Gorm
因為時區(qū)等問題,很多項目需要自定義時區(qū)和時間格式,所以這篇文章主要為大家介紹了Golang如何實現(xiàn)自定義時間結構體并支持Json&Gorm,希望對大家有所幫助2024-03-03
go mod更新指定的tag的包后,go vendor內(nèi)容未更新問題
這篇文章主要介紹了go mod更新指定的tag的包后,go vendor內(nèi)容未更新問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Gin與Mysql實現(xiàn)簡單Restful風格API實戰(zhàn)示例詳解
這篇文章主要為大家介紹了Gin與Mysql實現(xiàn)簡單Restful風格API示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步2021-11-11

