詳解go 中的 fmt 占位符
通用占位符
%v
值的默認(rèn)格式表示
fmt.Printf("%v\n", 100)}//100%+v
類(lèi)似%v,但輸出結(jié)構(gòu)體時(shí)會(huì)添加字段名
o := struct{ name string }{"tim"}
fmt.Printf("%+v\n", o)}}
//{name:tim}%#v
值的 Go 語(yǔ)法表示
o := struct{ name string }{"tim"}
fmt.Printf("%#v\n", o) }
//struct { name string }{name:"tim"}%T
打印值的類(lèi)型
o := struct{ name string }{"tim"}
fmt.Printf("%T\n", o) }
//struct { name string }%%
百分號(hào)
fmt.Printf("100%%\n") }//100%布爾型
true 或 false
t := true
fmt.Printf("value: %t", t)整形 %b
表示為二進(jìn)制
fmt.Printf("%c\n", 65)//A%c
該值對(duì)應(yīng)的unicode碼值
fmt.Printf("%c\n", 65)//A%d
表示為十進(jìn)制
fmt.Printf("%d\n", 65)//65%o
表示為八進(jìn)制
fmt.Printf("%o\n", 65)//101%x
表示為十六進(jìn)制,使用a-f
fmt.Printf("%x\n", 65)//41%X
表示為十六進(jìn)制,使用A-F
fmt.Printf("%X\n", 65)//41%U
表示為Unicode格式:U+1234,等價(jià)于”U+%04X”
fmt.Printf("%U\n", 65) // U+0041%q
該值對(duì)應(yīng)的單引號(hào)括起來(lái)的go語(yǔ)法字符字面值必要時(shí)會(huì)采用安全的轉(zhuǎn)義表示
fmt.Printf("%q\n", 65)//'A'浮點(diǎn)數(shù)與復(fù)數(shù)
%b
無(wú)小數(shù)部分、二進(jìn)制指數(shù)的科學(xué)計(jì)數(shù)法,如-123456p-78
fmt.Printf("%b\n", 12.34)//6946802425218990p-49%e
科學(xué)計(jì)數(shù)法,如-1234.456e+78
fmt.Printf("%e\n", f)//1.234000e+01%G
根據(jù)實(shí)際情況采用%E或%F格式(以獲得更簡(jiǎn)潔、準(zhǔn)確的輸出)
fmt.Printf("%G\n", f)//12.34%g
根據(jù)實(shí)際情況采用%e或%f格式(以獲得更簡(jiǎn)潔、準(zhǔn)確的輸出)
fmt.Printf("%g\n", f)//12.34%F
等價(jià)于%f
fmt.Printf("%F\n", 12.34)//12.340000%f
有小數(shù)部分但無(wú)指數(shù)部分,如123.456
fmt.Printf("%f\n", f)//12.340000%E
科學(xué)計(jì)數(shù)法,如-1234.456E+78
fmt.Printf("%E\n", f)//1.234000E+01字符串和[]byte %s
直接輸出字符串或者[]byte
fmt.Printf("%s\n", "tim")//tim%q
該值對(duì)應(yīng)的雙引號(hào)括起來(lái)的go語(yǔ)法字符串字面值,必要時(shí)會(huì)采用安全的轉(zhuǎn)義表示
fmt.Printf("%q\n", "tim")//"tim"%X
每個(gè)字節(jié)用兩字符十六進(jìn)制數(shù)表示(使用A-F)
fmt.Printf("%X\n", "tim")//E5BEAEE5AEA2%x
每個(gè)字節(jié)用兩字符十六進(jìn)制數(shù)表示(使用a-f)
fmt.Printf("%x\n", "tim")//e5beaee5aea2指針
%p
表示為十六進(jìn)制,并加上前導(dǎo)的0x
t := []int{1}fmt.Printf("value: %p", t)// value: 0x14000190008寬度標(biāo)識(shí)符
%f
默認(rèn)寬度,默認(rèn)精度
v := 92873.2309837 fmt.Printf("value: %f\n", v) // value: 92873.230984%9f
寬度9,默認(rèn)精度
fmt.Printf("value: %9f\n", v)// value: 92873.230984%9.f
寬度9,精度0
fmt.Printf("value: %9.f\n", v)// value: 92873%9.2f
寬度9,精度2
fmt.Printf("value: %9.2f\n", v)// value: 92873.23%.2f
默認(rèn)寬度,精度2
fmt.Printf("value: %.2f\n", v)// value: 92873.23其他flag
‘+’
總是輸出數(shù)值的正負(fù)號(hào);對(duì)%q(%+q)會(huì)生成全部是ASCII字符的輸出(通過(guò)轉(zhuǎn)義)
v := -92873.2309837fmt.Printf("value: %+f", v)’ ’
對(duì)數(shù)值,正數(shù)前加空格而負(fù)數(shù)前加負(fù)號(hào);對(duì)字符串采用%x或%X時(shí)(% x或% X)會(huì)給各打印的字節(jié)之間加空格
v := 92873.2309837fmt.Printf("value: % f", v)‘0’
使用0而不是空格填充,對(duì)于數(shù)值類(lèi)型會(huì)把填充的0放在正負(fù)號(hào)后面
v := -92873.2309837fmt.Printf("value: %07.f", v)// value: -092873‘#’
八進(jìn)制數(shù)前加0(%#o),十六進(jìn)制數(shù)前加0x(%#x)或0X(%#X),指針去掉前面的0x(%#p)對(duì)%q(%#q),對(duì)%U(%#U)會(huì)輸出空格和單引號(hào)括起來(lái)的go字面值
v := 101fmt.Printf("value: %#o", v)// value: 0145‘-’
在輸出右邊填充空白而不是默認(rèn)的左邊(即從默認(rèn)的右對(duì)齊切換為左對(duì)齊)
v := 101.35345345fmt.Printf("value: %-3.1f", v)// value: 101.4到此這篇關(guān)于go 中的 fmt 占位符的文章就介紹到這了,更多相關(guān)go fmt 占位符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Go語(yǔ)言編寫(xiě)一個(gè)毫秒級(jí)生成組件庫(kù)文檔工具
在開(kāi)發(fā)組件庫(kù)的過(guò)程中,文檔無(wú)疑是不可或缺的一環(huán),在本文中將嘗試將Go語(yǔ)言與前端技術(shù)巧妙融合,以創(chuàng)建一款能在毫秒級(jí)別完成文檔生成的工具,需要的可以參考下2024-03-03
golang interface判斷為空nil的實(shí)現(xiàn)代碼
這篇文章主要介紹了golang interface判斷為空nil的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
Go語(yǔ)言調(diào)用Shell與可執(zhí)行文件的實(shí)現(xiàn)
這篇文章主要介紹了Go語(yǔ)言調(diào)用Shell與可執(zhí)行文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

