golang 格式化輸入輸出操作
格式化字符串由占位符和普通字符組合而成。
占位符由'%'打頭,動(dòng)詞結(jié)尾。
占位符由五類元素組成: 標(biāo)志位(flag),寬度,精度,參數(shù)索引,以及動(dòng)詞。
除了最后的動(dòng)詞之外,其他元素均可省略。
看下面的常用類型的例子描述:
缺省格式和類型
Value: []int64{0, 1}
格式化后的效果 | 動(dòng)詞 | 描述 |
---|---|---|
[0 1] | %v | 缺省格式 |
[]int64{0, 1} | %#v | go語(yǔ)法打印 |
[]int64 | %T | 類型打印 |
整型(縮進(jìn), 進(jìn)制類型, 正負(fù)符號(hào))
Value: 15
格式化后的效果 | 動(dòng)詞 | 描述 |
---|---|---|
15 | %d | 十進(jìn)制 |
+15 | %+d | 必須顯示正負(fù)符號(hào) |
␣␣15 | %4d | Pad空格(寬度為4,右對(duì)齊) |
15␣␣ | %-4d | Pad空格 (寬度為4,左對(duì)齊) |
0015 | %04d | Pad空格(寬度為4) |
1111 | %b | 二進(jìn)制 |
17 | %o | 八進(jìn)制 |
f | %x | 16進(jìn)制,小寫 |
F | %X | 16進(jìn)制,大寫 |
0xf | %#x | 16進(jìn)制,帶進(jìn)制標(biāo)志0x |
字符(有引號(hào), Unicode)
Value: 65 (Unicode letter A)
格式化后的效果 | 動(dòng)詞 | 描述 |
---|---|---|
A | %c | 字符 |
'A' | %q | 有引號(hào)的字符 |
U+0041 | %U | Unicode |
U+0041 'A' | %#U | Unicode 有引號(hào) |
布爾(true/false)
使用 %t 來(lái)格式化一個(gè)布爾類型為true或false
指針(hex)
使用 %p 來(lái)格式化一個(gè)指針為16進(jìn)制的顯示方式
浮點(diǎn)(縮進(jìn), 精度, 科學(xué)計(jì)數(shù))
Value: 123.456
格式化后的效果 | 動(dòng)詞 | 描述 |
---|---|---|
1.234560e+02 | %e | 科學(xué)計(jì)數(shù) |
123.456000 | %f | 十進(jìn)制小數(shù) |
123.46 | %.2f | 缺省寬度,精度為2 |
␣␣123.46 | %8.2f | 寬度為8,精度為2 |
123.456 | %g | 根據(jù)情況選擇%e或%f,末尾沒(méi)有0 |
字符串or 字節(jié)slice (引號(hào), 縮進(jìn), 16進(jìn)制)
Value: "café"
格式化后的效果 | 動(dòng)詞 | 描述 |
---|---|---|
café | %s | 字符串原樣輸出 |
␣␣café | %6s | 寬度為6,右對(duì)齊 |
café␣␣ | %-6s | 寬度為6,左對(duì)齊 |
"café" | %q | 帶引號(hào)的字符串 |
636166c3a9 | %x | 16進(jìn)制的形式打印每個(gè)字節(jié) |
63 61 66 c3 a9 | % x | 16進(jìn)制的形式打印每個(gè)字節(jié),字節(jié)間帶空格 |
補(bǔ)充:golang中格式化符號(hào)說(shuō)明
%v 值的默認(rèn)格式表示
%+v 類似%v,但輸出結(jié)構(gòu)體時(shí)會(huì)添加字段名
%#v 值的Go語(yǔ)法表示
%T 值的類型的Go語(yǔ)法表示
%% 百分號(hào)
布爾值:
%t 單詞true或false
整數(shù):
%b 表示為二進(jìn)制
%c 該值對(duì)應(yīng)的unicode碼值
%d 表示為十進(jìn)制
%o 表示為八進(jìn)制
%q 該值對(duì)應(yīng)的單引號(hào)括起來(lái)的go語(yǔ)法字符字面值,必要時(shí)會(huì)采用安全的轉(zhuǎn)義表示
%x 表示為十六進(jìn)制,使用a-f
%X 表示為十六進(jìn)制,使用A-F
%U 表示為Unicode格式:U+1234,等價(jià)于"U+%04X"
浮點(diǎn)數(shù)與復(fù)數(shù)的兩個(gè)組分:
%b 無(wú)小數(shù)部分、二進(jìn)制指數(shù)的科學(xué)計(jì)數(shù)法,如-123456p-78;參見(jiàn)strconv.FormatFloat
%e 科學(xué)計(jì)數(shù)法,如-1234.456e+78
%E 科學(xué)計(jì)數(shù)法,如-1234.456E+78
%f 有小數(shù)部分但無(wú)指數(shù)部分,如123.456
%F 等價(jià)于%f
%g 根據(jù)實(shí)際情況采用%e或%f格式(以獲得更簡(jiǎn)潔、準(zhǔn)確的輸出)
%G 根據(jù)實(shí)際情況采用%E或%F格式(以獲得更簡(jiǎn)潔、準(zhǔn)確的輸出)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Golang實(shí)現(xiàn)自定義時(shí)間結(jié)構(gòu)體并支持Json&Gorm
因?yàn)闀r(shí)區(qū)等問(wèn)題,很多項(xiàng)目需要自定義時(shí)區(qū)和時(shí)間格式,所以這篇文章主要為大家介紹了Golang如何實(shí)現(xiàn)自定義時(shí)間結(jié)構(gòu)體并支持Json&Gorm,希望對(duì)大家有所幫助2024-03-03go mod更新指定的tag的包后,go vendor內(nèi)容未更新問(wèn)題
這篇文章主要介紹了go mod更新指定的tag的包后,go vendor內(nèi)容未更新問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Go語(yǔ)言學(xué)習(xí)教程之結(jié)構(gòu)體的示例詳解
結(jié)構(gòu)體是一個(gè)序列,包含一些被命名的元素,這些被命名的元素稱為字段(field),每個(gè)字段有一個(gè)名字和一個(gè)類型。本文通過(guò)一些示例帶大家深入了解Go語(yǔ)言中結(jié)構(gòu)體的使用,需要的可以參考一下2022-09-09詳解Go語(yǔ)言如何熱重載和優(yōu)雅地關(guān)閉程序
我們有時(shí)會(huì)因不同的目的去關(guān)閉服務(wù),一種關(guān)閉服務(wù)是終止操作系統(tǒng),一種關(guān)閉服務(wù)是用來(lái)更新配置,本文就來(lái)和大家簡(jiǎn)單講講這兩種方法的實(shí)現(xiàn)吧2023-07-07Go語(yǔ)言實(shí)現(xiàn)本地緩存的策略詳解
今天給大家分享的是Go語(yǔ)言本地緩存的一些內(nèi)容,主要是結(jié)合bigcache和fastcache兩個(gè)優(yōu)秀的開(kāi)源代碼庫(kù),總結(jié)一些設(shè)計(jì)思路和感悟,文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07Go語(yǔ)言基礎(chǔ)語(yǔ)法之結(jié)構(gòu)體及方法詳解
結(jié)構(gòu)體類型可以用來(lái)保存不同類型的數(shù)據(jù),也可以通過(guò)方法的形式來(lái)聲明它的行為。本文將介紹go語(yǔ)言中的結(jié)構(gòu)體和方法,以及“繼承”的實(shí)現(xiàn)方法2021-09-09Gin與Mysql實(shí)現(xiàn)簡(jiǎn)單Restful風(fēng)格API實(shí)戰(zhàn)示例詳解
這篇文章主要為大家介紹了Gin與Mysql實(shí)現(xiàn)簡(jiǎn)單Restful風(fēng)格API示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11