Golang中的占位符詳解
1、%v:值占位符,將值格式化為一個(gè)更緊湊的表示形式。
package main import ( "fmt" ) type user struct { name string age int } func main() { u := user{name: "路多辛", age: 18} fmt.Printf("The value is: %v\n", u) m := map[string]interface{}{"name": "路多辛", "age": 18} fmt.Printf("The value is: %v\n", m) fmt.Printf("The value is: %v\n", 666) }
2、%+v:相比%v,如果是結(jié)構(gòu)體,會(huì)帶上字段名。
package main import ( "fmt" ) type user struct { name string age int } func main() { u := user{name: "路多辛", age: 18} fmt.Printf("The value is: %+v\n", u) m := map[string]interface{}{"name": "路多辛", "age": 18} fmt.Printf("The value is: %+v\n", m) fmt.Printf("The value is: %+v\n", 666) }
輸出結(jié)果如下:
The value is: {name:路多辛 age:18}
The value is: map[age:18 name:路多辛]
The value is: 666
3、%#v:該值的go語法表示形式。
package main import ( "fmt" ) type user struct { name string age int } func main() { u := user{name: "路多辛", age: 18} fmt.Printf("The value is: %#v\n", u) m := map[string]interface{}{"name": "路多辛", "age": 18} fmt.Printf("The value is: %#v\n", m) fmt.Printf("The value is: %#v\n", 666) }
輸出結(jié)果如下:
The value is: main.user{name:"路多辛", age:18}
The value is: map[string]interface {}{"age":18, "name":"路多辛"}
The value is: 666
4、%T:值的類型的go語法表示。
package main import ( "fmt" ) type user struct { name string age int } func main() { u := user{name: "路多辛", age: 18} fmt.Printf("The value is: %T\n", u) m := map[string]interface{}{"name": "路多辛", "age": 18} fmt.Printf("The value is: %T\n", m) fmt.Printf("The value is: %T\n", 666) }
輸出結(jié)果如下:
The value is: main.user
The value is: map[string]interface {}
The value is: int
5、%%:輸出一個(gè)字面的百分號(hào)。
package main import ( "fmt" ) func main() { fmt.Printf("%%") // 輸出 % }
6、%t:單詞 true 或 false。
package main import ( "fmt" ) func main() { fmt.Printf("%t", true) // 輸出 true }
7、%b:二進(jìn)制表示形式。
package main import ( "fmt" ) func main() { fmt.Printf("%b", 3) // 輸出:11 }
8、%c:相應(yīng)的Unicode碼值。
package main import ( "fmt" ) func main() { fmt.Printf("%c%c%c的所思所想", 0x8DEF, 0x591A, 0x8F9B) // 輸出 路多辛的所思所想 }
9、%d:十進(jìn)表示形式。
package main import ( "fmt" ) func main() { fmt.Printf("%d", 0x12) // 輸出 18 }
10、%o:八進(jìn)表示形式。
package main import ( "fmt" ) func main() { fmt.Printf("%o", 9) // 輸出 11 }
11、%O:八進(jìn)表示形式,帶0o前綴。
package main import ( "fmt" ) func main() { fmt.Printf("%O", 9) // 輸出 0o11 }
12、%q:將值格式化為一個(gè)帶有單引號(hào)的字符。
package main import "fmt" func main() { fmt.Printf("%q", 0x8DEF) // 輸出 '路' }
13、%x:將值格式化為一個(gè)不帶符號(hào)的采用十六進(jìn)制表示的字符。
package main import "fmt" func main() { fmt.Printf("%x\n", 0x8DEF) // 輸出 8def fmt.Printf("%x", 13) // 輸出 d }
14、%X:與 %x 不同的是將值格式化為大寫字母形式。
package main import "fmt" func main() { fmt.Printf("%x\n", 0x8DEF) // 輸出 8DEF fmt.Printf("%x", 13) // 輸出 D }
15、%U:將值格式化為一個(gè)帶有前綴 "U+"的字符串形式,Unicode格式。
package main import "fmt" func main() { fmt.Printf("%U\n", 0x8DEF) // 輸出 U+8DEF fmt.Printf("%U", 13) // 輸出 U+000D }
16、%e:將值格式化為一個(gè)帶小數(shù)點(diǎn)的科學(xué)計(jì)數(shù)法表示形式。
package main import "fmt" func main() { fmt.Printf("The value is: %e\n", 10.1) // 輸出 1.010000e+01 }
17、%E 將值格式化為一個(gè)帶小數(shù)點(diǎn)的科學(xué)計(jì)數(shù)法表示形式。
package main import "fmt" func main() { fmt.Printf("The value is: %E\n", 10.1) // 輸出 1.010000E+01 }
18、%f:將值格式化為帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式。
package main import "fmt" func main() { fmt.Printf("The value is: %f\n", 10.1) // 輸出 10.100000 }
19、%F:同 %f。
package main import "fmt" func main() { fmt.Printf("The value is: %F\n", 10.1) // 輸出 10.100000 }
20、%g:將值格式化為一個(gè)合適的表示形式的字符串,可以自動(dòng)選擇帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式或不帶小數(shù)點(diǎn)的浮點(diǎn)數(shù)表示形式。
package main import "fmt" func main() { fmt.Printf("The value is: %g\n", 10) // 輸出 %!g(int=10) fmt.Printf("The value is: %g\n", 10.1) // 輸出 10.1 fmt.Printf("The value is: %g\n", 1000000.1) // 輸出 1.0000001e+06 }
21、%G:與 %g不同的是,%G會(huì)根據(jù)值的范圍選擇采用大寫字母或小寫字母表示的形式。
package main import "fmt" func main() { fmt.Printf("The value is: %G\n", 10) // 輸出 %!G(int=10) fmt.Printf("The value is: %G\n", 10.1) // 輸出 10.1 fmt.Printf("The value is: %G\n", 1000000.1) // 輸出 1.0000001E+06 }
22、%s 字符串表示形式。
package main import "fmt" func main() { fmt.Printf("The value is: %s\n", "路多辛的博客") // 輸出 路多辛的博客 fmt.Printf("The value is: %s\n", []byte("路多辛")) // 輸出 路多辛 }
23、%p:將值格式化為一個(gè)指針的地址表示形式,十六進(jìn)制表示,前綴 0x。
package main import "fmt" func main() { a := 10 fmt.Printf("The value is: %p\n", &a) // 輸出例如 0xc0000b2008 }
24、%.(數(shù)字)s:截取指定長度的字符串。
package main import "fmt" func main() { fmt.Printf("The value is: %.3s\n", "路多辛的博客") // 輸出 路多辛 }
25、%w:將值格式化為一個(gè)錯(cuò)誤消息的字符串形式。
package main import ( "errors" "fmt" ) func main() { w := fmt.Errorf("wrapD的錯(cuò)誤信息-%w", errors.New("原始錯(cuò)誤信息")) fmt.Println(w.Error()) // 輸出 wrap的錯(cuò)誤信息-原始錯(cuò)誤信息 }
以上就是Golang中的占位符詳解的詳細(xì)內(nèi)容,更多關(guān)于Golang占位符的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go語言實(shí)現(xiàn)的一個(gè)簡單Web服務(wù)器
這篇文章主要介紹了Go語言實(shí)現(xiàn)的一個(gè)簡單Web服務(wù)器,本文先是給出一個(gè)使用http包建立的Web服務(wù)器源碼,并對(duì)比了其它編程語言,需要的朋友可以參考下2014-10-10Golang使用pprof和trace進(jìn)行診斷和修復(fù)性能問題
在?Go?中,開發(fā)人員可以使用強(qiáng)大的內(nèi)置工具來幫助診斷和修復(fù)性能問題,其中兩個(gè)工具是?pprof?和?trace?包,下面就跟隨小編一起來了解下如何使用pprof和trace進(jìn)行診斷和修復(fù)性能問題吧2024-01-01Go語言fmt.Sprintf格式化輸出的語法與實(shí)例
Go 可以使用 fmt.Sprintf 來格式化字符串,下面這篇文章主要給大家介紹了關(guān)于Go語言fmt.Sprintf格式化輸出的語法與實(shí)例,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07詳解Go語言中關(guān)于包導(dǎo)入必學(xué)的 8 個(gè)知識(shí)點(diǎn)
這篇文章主要介紹了詳解Go語言中關(guān)于包導(dǎo)入必學(xué)的 8 個(gè)知識(shí)點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08基于go中fyne gui的通達(dá)信數(shù)據(jù)導(dǎo)出工具詳解
這篇文章主要介紹了基于go中fyne gui的通達(dá)信數(shù)據(jù)導(dǎo)出工具,這是一個(gè)用 Go 語言開發(fā)的通達(dá)信數(shù)據(jù)導(dǎo)出工具,可以將通達(dá)信的本地?cái)?shù)據(jù)導(dǎo)出為多種格式,方便用戶進(jìn)行數(shù)據(jù)分析和處理,需要的朋友可以參考下2024-12-12Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn)
在Go語言中,我們經(jīng)常在字符串和切片之間進(jìn)行轉(zhuǎn)換,本文就詳細(xì)的介紹一下Golang 字符串與字節(jié)數(shù)組互轉(zhuǎn)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02go語言題解LeetCode1128等價(jià)多米諾骨牌對(duì)的數(shù)量
這篇文章主要為大家介紹了go語言題解LeetCode1128等價(jià)多米諾骨牌對(duì)的數(shù)量示例詳解,2022-12-12Golang使用sqlite3數(shù)據(jù)庫實(shí)現(xiàn)CURD操作
這篇文章主要為大家詳細(xì)介紹了Golang使用sqlite3數(shù)據(jù)庫實(shí)現(xiàn)CURD操作的相關(guān)知識(shí),文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2025-03-03