Go语言fmt.Printf使用指南(占位符总结)
生活随笔
收集整理的這篇文章主要介紹了
Go语言fmt.Printf使用指南(占位符总结)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文整理了Go語言的標(biāo)準(zhǔn)輸出流(fmt.Printf)在打印到屏幕時的格式化輸出操作。
在這里按照占位符將被替換的變量類型劃分,更方便查詢和記憶。
總結(jié)
1.1 General(通用占位符)
| %v | 以默認(rèn)的方式打印變量的值(萬能占位符,如果不知道變量是什么類型,用%v即可,go語言會自動為你識別) |
| %T | 打印變量的類型 |
| %% | 字面上的百分號,并非值的占位符 |
補(bǔ)充:
%v:默認(rèn)格式的值。當(dāng)打印結(jié)構(gòu)時,加號(%+v)會增加字段名;
%#v:Go 樣式的值表達(dá);
示例:
package mainimport "fmt"func main() {var (a = 100b = "henry")// %v俗稱占位符fmt.Printf("a=%v\n", a)// %T 打印類型fmt.Printf("b的類型是%T\n", b)// %%轉(zhuǎn)義fmt.Printf("%d%%\n", a) }執(zhí)行結(jié)果:
1.2 Integer(整型)
| %+d | 帶符號的整型 |
| %q | 打印單引號 |
| %o | 不帶零的八進(jìn)制 |
| %#o | 帶零的八進(jìn)制 |
| %x | 小寫的十六進(jìn)制 |
| %X | 大寫的十六進(jìn)制 |
| %#x | 帶0x的十六進(jìn)制 |
| %U | 打印Unicode字符 |
| %#U | 打印帶字符的Unicode |
| %b | 打印整型的二進(jìn)制 |
1.3 Integer width(指定長度的整型,以5為例)
| %5d | 整型長度為5,右對齊,左邊留白 |
| %-5d | 左對齊右邊留白 |
| %05d | 數(shù)字前面補(bǔ)零 |
示例:
package mainimport "fmt"func main() {var (a = 100)fmt.Printf("|%d|\n", a)fmt.Printf("|%8d|\n", a)fmt.Printf("|%-8d|\n", a)fmt.Printf("|%08d|\n", a) }執(zhí)行結(jié)果:
1.4 Float(浮點(diǎn)數(shù))
| %f | (=%.6f) 6位小數(shù)點(diǎn) |
| %e | (=%.6e) 6位小數(shù)點(diǎn)(科學(xué)計(jì)數(shù)法) |
| %g | 用最少的數(shù)字來表示 |
| %.3g | 最多3位數(shù)字來表示 |
| %.3f | 最多3位小數(shù)來表示 |
示例:
package mainimport "fmt"func main() {f1 := 3.141592654fmt.Printf("%.2f\n", f1) //最多2位小數(shù)表示fmt.Printf("%.2g\n", f1) //最多用2位數(shù)字表示 }執(zhí)行結(jié)果:
1.5 String(字符串)
| %s | 正常輸出字符串 |
| %q | 字符串帶雙引號,字符串中的引號帶轉(zhuǎn)義符 |
| %#q | 字符串帶反引號,如果字符串內(nèi)有反引號,就用雙引號代替 |
| %x | 將字符串轉(zhuǎn)換為小寫的16進(jìn)制格式 |
| %X | 將字符串轉(zhuǎn)換為大寫的16進(jìn)制格式 |
| % x | 帶空格的16進(jìn)制格式 |
示例:
package mainimport "fmt"func main() {s1 := "這是一個字符串\""fmt.Printf("s1:%s\n", s1) // %s 正常輸出字符串fmt.Printf("s1:%q\n", s1) // %q 字符串帶雙引號,字符串中的引號帶轉(zhuǎn)義符 }執(zhí)行結(jié)果:
1.6 String Width (指定長度的字符串,以5為例)
| %5s | 最小寬度為5 |
| %-5s | 最小寬度為5(左對齊) |
| %.5s | 最大寬度為5 |
| %5.7s | 最小寬度為5,最大寬度為7 |
| %-5.7s | 最小寬度為5,最大寬度為7(左對齊) |
| %5.3s | 如果寬度大于3,則截?cái)?/td> |
| %05s | 如果寬度小于5,就會在字符串前面補(bǔ)零 |
代碼示例:
package mainimport "fmt"func main() {s1 := "這是一個字符串\""fmt.Printf("s1:%20s\n", s1) //字符串最小寬度為20fmt.Printf("s1:%.5s\n", s1) //字符串最大寬度為5 }執(zhí)行結(jié)果:
1.7 Struct(結(jié)構(gòu)體)
| %v | 以默認(rèn)的方式打印變量的值 |
| %+v | 在打印結(jié)構(gòu)體時,會添加字段名 |
| %#v | 在打印結(jié)構(gòu)體時,會添加字段名和包名 |
1.8 Boolean(布爾值)
| %t | 打印true或false |
1.9 Pointer(指針)
| %p | 帶0x的指針(指針值帶有0x的十六進(jìn)制前綴) |
| %#p | 不帶0x的指針 |
轉(zhuǎn)載于:https://www.cnblogs.com/forever521Lee/p/10700549.html
總結(jié)
以上是生活随笔為你收集整理的Go语言fmt.Printf使用指南(占位符总结)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天去全屋定制那里被推荐用上为璞作饰板,
- 下一篇: 哪个品牌的奶茶比较好喝?求推荐。