Go語言中占位符格式化符號的實(shí)現(xiàn)
更新時間:2025年10月09日 10:58:34 作者:Penge666
本文介紹了Go語言中常用格式化占位符,包括結(jié)構(gòu)體、布爾、整數(shù)、浮點(diǎn)數(shù)、字符串、切片及指針類型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
普通占位符
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %v | 默認(rèn)格式的值 | fmt.Printf("%v", User{Name: "小明", Age: 18}) | {小明 18} |
| %+v | 如果打印的是結(jié)構(gòu)體,額外打印字段名 | fmt.Printf("%+v", User{Name: "小明", Age: 18}) | {Name:小明 Age:18} |
| %#v | 對應(yīng)值的 Go 語法表示 | fmt.Printf("%#v", User{Name: "小明", Age: 18}) | main.User{Name:"小明", Age:18} |
| %T | 對應(yīng)值類型的 Go 語法表示 | fmt.Printf("%T", User{Name: "小明", Age: 18}) | main.User |
| %% | 非占位符,而是字面上的 % | fmt.Printf("%%") | % |
package main
import (
"fmt"
)
// 定義一個結(jié)構(gòu)體類型
type User struct {
Name string
Age int
}
func main() {
u := User{Name: "小明", Age: 18}
fmt.Println("1. %v(默認(rèn)格式)")
fmt.Printf("輸出: %v\n\n", u)
// 輸出: {小明 18}
fmt.Println("2. %+v(結(jié)構(gòu)體帶字段名)")
fmt.Printf("輸出: %+v\n\n", u)
// 輸出: {Name:小明 Age:18}
fmt.Println("3. %#v(Go 語法表示)")
fmt.Printf("輸出: %#v\n\n", u)
// 輸出: main.User{Name:"小明", Age:18}
fmt.Println("4. %T(類型表示)")
fmt.Printf("輸出: %T\n\n", u)
// 輸出: main.User
fmt.Println("5. %%(百分號字面量)")
fmt.Printf("輸出: 100%% 成功\n")
// 輸出: 100% 成功
}
布爾
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %t | 對應(yīng)值 true 或 false | fmt.Printf("%t", false) | false |
整數(shù)
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %b | 二進(jìn)制的形式 | fmt.Printf("%b", 2) | 10 |
| %c | 對應(yīng)的Unicode碼位表示的字符 | fmt.Printf("%c", 65) | A |
| %d | 十進(jìn)制的形式 | fmt.Printf("%d", 10) | 10 |
| %5d | 十進(jìn)制的形式,長度為5,長度不夠用空格來補(bǔ) | fmt.Printf("%5d", 123) | __123,由于空格顯示不出來,用下劃線表示空格 |
| %o | 八進(jìn)制的形式 | fmt.Printf("%o", 10) | 12 |
| %O | 前綴為0o的八進(jìn)制的形式 | fmt.Printf("%O", 10) | 0o12 |
| %q | 使用 Go 語法安全轉(zhuǎn)義的單引號字符文字 | fmt.Printf("%q", 65) | 'A' |
| %x | 十六進(jìn)制的形式,字母部分用小寫字母 a-f 表示 | fmt.Printf("%x", 12) | c |
| %X | 十六進(jìn)制的形式,字母部分用大寫字母 A-F 表示 | fmt.Printf("%X", 12) | C |
| %U | Unicode 格式 | fmt.Printf("%U", 15) | U+000F |
浮點(diǎn)數(shù)
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %f | 打印小數(shù),默認(rèn)的長度和小數(shù),小數(shù)精度為 6 位 | fmt.Printf("%f", 1.50000000001) | 1.500000 |
| %5f | 長度為 5(整數(shù)和小數(shù)點(diǎn)以及小數(shù)加起來的長度),默認(rèn)小數(shù)精度6位,長度不夠則用空格來補(bǔ) | fmt.Printf("%10f", 0.1) | __0.100000,由于空格顯示不出來,用下劃線表示空格 |
| %.3f | 默認(rèn)長度,小數(shù)精度為 3 | fmt.Printf("%.3f", 0.1) | 0.100 |
| %7.3f | 長度為 7(整數(shù)和小數(shù)點(diǎn)以及小數(shù)加起來的長度),小樹精度為 3 | fmt.Printf("%7.3f", 0.1) | __ 0.100,由于空格顯示不出來,用下劃線表示空格 |
字符串和字節(jié)切片
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %s | 輸出 string 類型或 []byte 類型的字符串形式 | fmt.Printf("%s, %s", "haha", []byte("haha")) | haha, haha |
| %q | 加上雙引號的字符串 | fmt.Printf("%q", "haha") | "haha" |
| %x | 十六進(jìn)制的形式,字母用小寫表示,每個字節(jié)兩個字符 | fmt.Printf("%x", "hello") | 68656c6c6f |
| %X | 十六進(jìn)制的形式,字母用大寫表示,每個字節(jié)兩個字符 | fmt.Printf("%X", "hello") | 68656C6C6F |
package main
import (
"fmt"
)
func main() {
s := "haha"
b := []byte("haha")
fmt.Println("1. %s:輸出字符串或 []byte 的字符串表示")
fmt.Printf("輸出: %s, %s\n\n", s, b)
// 輸出: haha, haha
fmt.Println("2. %q:字符串帶雙引號")
fmt.Printf("輸出: %q\n\n", s)
// 輸出: "haha"
fmt.Println("3. %x:十六進(jìn)制小寫(每字節(jié)兩個字符)")
fmt.Printf("輸出: %x\n\n", "hello")
// 輸出: 68656c6c6f
fmt.Println("4. %X:十六進(jìn)制大寫(每字節(jié)兩個字符)")
fmt.Printf("輸出: %X\n\n", "hello")
// 輸出: 68656C6C6F
}
切片
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %p | 以16進(jìn)制表示的第0個元素的地址,前綴為0x | fmt.Printf("%p", []int{1, 2, 3}) | 0xc000010120 |
指針
| 占位符 | 描述 | 舉例 | 結(jié)果 |
|---|---|---|---|
| %p | 16進(jìn)制表示,前綴為0x | fmt.Printf("%p", &User{Name: "小明"}) | 0xc000008078 |
到此這篇關(guān)于Go語言中占位符格式化符號的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Go 占位符格式化符號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
golang如何使用gos7讀取S7200Smart數(shù)據(jù)
文章介紹了如何使用Golang語言的Gos7工具庫讀取西門子S7200Smart系列PLC的數(shù)據(jù),通過指定數(shù)據(jù)塊號、起始字節(jié)偏移量和數(shù)據(jù)長度,可以精確讀取所需的數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧
2024-12-12
深入解析Go語言中HTTP請求處理的底層實(shí)現(xiàn)
本文將詳細(xì)介紹?Go?語言中?HTTP?請求處理的底層機(jī)制,包括工作流程、創(chuàng)建?Listen?Socket?監(jiān)聽端口、接收客戶端請求并建立連接以及處理客戶端請求并返回響應(yīng)等,需要的朋友可以參考下
2023-05-05 
