Go 格式化動詞

Printf() 函數(shù)可以使用多種格式化動詞對輸出進(jìn)行格式化。下面是可以與所有數(shù)據(jù)類型一起使用的一些通用格式化動詞:
通用格式化動詞:以下動詞適用于所有數(shù)據(jù)類型:
動詞描述%v
以默認(rèn)格式打印值%#v
以 Go 語法格式打印值%T
打印值的類型%%
打印百分號
示例:
package main
import (
?"fmt"
)
func main() {
?var i = 15.5
?var txt = "Hello World!"
?fmt.Printf("%v\n", i)
?fmt.Printf("%#v\n", i)
?fmt.Printf("%v%%\n", i)
?fmt.Printf("%T\n", i)
?fmt.Printf("%v\n", txt)
?fmt.Printf("%#v\n", txt)
?fmt.Printf("%T\n", txt)
}
結(jié)果:
15.5
15.5
15.5%
float64
Hello World!
"Hello World!"
string
整數(shù)格式化動詞
以下動詞適用于整數(shù)數(shù)據(jù)類型:
動詞描述%b
二進(jìn)制%d
十進(jìn)制%+d
帶符號的十進(jìn)制%o
八進(jìn)制%O
八進(jìn)制(帶 0o 前綴)%x
十六進(jìn)制(小寫)%X
十六進(jìn)制(大寫)%#x
帶 0x 前綴的十六進(jìn)制%4d
使用空格填充(寬度 4,右對齊)%-4d
使用空格填充(寬度 4,左對齊)%04d
使用零填充(寬度 4)
示例:
package main
import (
?"fmt"
)
func main() {
?var i = 15
?fmt.Printf("%b\n", i)
?fmt.Printf("%d\n", i)
?fmt.Printf("%+d\n", i)
?fmt.Printf("%o\n", i)
?fmt.Printf("%O\n", i)
?fmt.Printf("%x\n", i)
?fmt.Printf("%X\n", i)
?fmt.Printf("%#x\n", i)
?fmt.Printf("%4d\n", i)
?fmt.Printf("%-4d\n", i)
?fmt.Printf("%04d\n", i)
}
結(jié)果:
1111
15
+15
17
0o17
f
F
0xf
?15
15
0015
字符串格式化動詞
以下動詞適用于字符串?dāng)?shù)據(jù)類型:
動詞描述%s
普通字符串打印%q
雙引號包裹的字符串打印%8s
普通字符串打?。▽挾?8,右對齊)%-8s
普通字符串打?。▽挾?8,左對齊)%x
字節(jié)值的十六進(jìn)制轉(zhuǎn)儲% x
帶空格的十六進(jìn)制轉(zhuǎn)儲
示例:
package main
import (
?"fmt"
)
func main() {
?var txt = "Hello"
?fmt.Printf("%s\n", txt)
?fmt.Printf("%q\n", txt)
?fmt.Printf("%8s\n", txt)
?fmt.Printf("%-8s\n", txt)
?fmt.Printf("%x\n", txt)
?fmt.Printf("% x\n", txt)
}
結(jié)果:
Hello
"Hello"
? Hello
Hello
48656c6c6f
48 65 6c 6c 6f
布爾格式化動詞
以下動詞適用于布爾數(shù)據(jù)類型:
動詞描述%t
布爾運(yùn)算符的 true 或 false 格式(與 %v
相同)
示例:
package main
import (
?"fmt"
)
func main() {
?var i = true
?var j = false
?fmt.Printf("%t\n", i)
?fmt.Printf("%t\n", j)
}
結(jié)果:
true
false
浮點(diǎn)數(shù)格式化動詞
以下動詞適用于浮點(diǎn)數(shù)數(shù)據(jù)類型:
動詞描述%e
科學(xué)計數(shù)法,指數(shù)為 'e'%f
小數(shù)點(diǎn),無指數(shù)部分%.2f
默認(rèn)寬度,精度為 2%6.2f
寬度 6,精度 2%g
必要時使用指數(shù),僅保留必要的位數(shù)
示例:
package main
import (
?"fmt"
)
func main() {
?var i = 3.141
?fmt.Printf("%e\n", i)
?fmt.Printf("%f\n", i)
?fmt.Printf("%.2f\n", i)
?fmt.Printf("%6.2f\n", i)
?fmt.Printf("%g\n", i)
}
結(jié)果:
3.141000e+00
3.141000
3.14
?3.14
3.141
請注意,這個翻譯可能不是完美的,因?yàn)檎Z言之間的表達(dá)方式可能有細(xì)微的差異。
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:
公眾號搜索Let us Coding
看完如果覺得有幫助,歡迎點(diǎn)贊、收藏和關(guān)注