日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

一文詳解Go語(yǔ)言fmt標(biāo)準(zhǔn)庫(kù)的常用占位符使用_Golang

作者:陳明勇 ? 更新時(shí)間: 2023-01-28 編程語(yǔ)言

占位符

通過(guò)占位符,可以指定格式進(jìn)行輸入或輸出,以下為 fmt 標(biāo)準(zhǔn)庫(kù)里的占位符:

普通占位符

占位符 描述 舉例 結(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 對(duì)應(yīng)值的 Go 語(yǔ)法表示 fmt.Printf("%#v", User{Name: "小明", Age: 18}) main.User{Name:"小明", Age:18}
%T 對(duì)應(yīng)值類(lèi)型的 Go 語(yǔ)法表示 fmt.Printf("%T", User{Name: "小明", Age: 18}) main.User
%% 非占位符,而是字面上的 % fmt.Printf("%%") %

布爾

占位符 描述 舉例 結(jié)果
%t 對(duì)應(yīng)值 true 或 false fmt.Printf("%t", false) false

整數(shù)

占位符 描述 舉例 結(jié)果
%b 二進(jìn)制的形式 fmt.Printf("%b", 2) 10
%c 對(duì)應(yīng)的Unicode碼位表示的字符 fmt.Printf("%c", 65) A
%d 十進(jìn)制的形式 fmt.Printf("%d", 10) 10
%5d 十進(jìn)制的形式,長(zhǎng)度為5,長(zhǎng)度不夠用空格來(lái)補(bǔ) fmt.Printf("%5d", 123) __123,由于空格顯示不出來(lái),用下劃線表示空格
%o 八進(jìn)制的形式 fmt.Printf("%o", 10) 12
%O 前綴為0o的八進(jìn)制的形式 fmt.Printf("%O", 10) 0o12
%q 使用 Go 語(yǔ)法安全轉(zhuǎn)義的單引號(hào)字符文字 fmt.Printf("%q", 65) 'A'
%x 十六進(jìn)制的形式,字母部分用小寫(xiě)字母 a-f 表示 fmt.Printf("%x", 12) c
%X 十六進(jìn)制的形式,字母部分用大寫(xiě)字母 A-F 表示 fmt.Printf("%X", 12) C
%U Unicode 格式 fmt.Printf("%U", 15) U+000F

浮點(diǎn)數(shù)

占位符 描述 舉例 結(jié)果
%f 打印小數(shù),默認(rèn)的長(zhǎng)度和小數(shù),小數(shù)精度為 6 位 fmt.Printf("%f", 1.50000000001) 1.500000
%5f 長(zhǎng)度為 5(整數(shù)和小數(shù)點(diǎn)以及小數(shù)加起來(lái)的長(zhǎng)度),默認(rèn)小數(shù)精度6位,長(zhǎng)度不夠則用空格來(lái)補(bǔ) fmt.Printf("%10f", 0.1) __0.100000,由于空格顯示不出來(lái),用下劃線表示空格
%.3f 默認(rèn)長(zhǎng)度,小數(shù)精度為 3 fmt.Printf("%.3f", 0.1) 0.100
%7.3f 長(zhǎng)度為 7(整數(shù)和小數(shù)點(diǎn)以及小數(shù)加起來(lái)的長(zhǎng)度),小樹(shù)精度為 3 fmt.Printf("%7.3f", 0.1) __ 0.100,由于空格顯示不出來(lái),用下劃線表示空格

字符串和字節(jié)切片

占位符 描述 舉例 結(jié)果
%s 輸出 string 類(lèi)型或 []byte 類(lèi)型的字符串形式 fmt.Printf("%s, %s", "haha", []byte("haha")) haha, haha
%q 加上雙引號(hào)的字符串 fmt.Printf("%q", "haha") "haha"
%x 十六進(jìn)制的形式,字母用小寫(xiě)表示,每個(gè)字節(jié)兩個(gè)字符 fmt.Printf("%x", "hello") 68656c6c6f
%X 十六進(jìn)制的形式,字母用大寫(xiě)表示,每個(gè)字節(jié)兩個(gè)字符 fmt.Printf("%X", "hello") 68656C6C6F

切片

占位符 描述 舉例 結(jié)果
%p 以16進(jìn)制表示的第0個(gè)元素的地址,前綴為0x fmt.Printf("%p", []int{1, 2, 3}) 0xc000010120

指針

占位符 描述 舉例 結(jié)果
%p 16進(jìn)制表示,前綴為0x fmt.Printf("%p", &User{Name: "小明"}) 0xc000008078

占位符使用示例

下面為大家簡(jiǎn)單介紹了一些占位符的使用

占位符需要使用 % 符號(hào)表示,簡(jiǎn)單展示一個(gè)。

s := fmt.Sprintf("%s真帥", "老苗")
fmt.Println(s)

// 輸出
老苗真帥

%s 標(biāo)示字符串,將"老苗"字符串填充到 %s 位置。下來(lái)看看到底有哪些占位符?

1.%v:獲取數(shù)據(jù)的值,如果實(shí)現(xiàn)了 error 接口,僅表示錯(cuò)誤消息。

fmt.Printf("%v", data) 
// 輸出 
{例子}

fmt.Printf("%v", errors.New("我錯(cuò)了"))
// 輸出
我錯(cuò)了

2.%+v:獲取數(shù)據(jù)的值,如果結(jié)構(gòu)體,會(huì)攜帶字段名。

fmt.Printf("%+v", data)
// 輸出
{Content:例子}

3.%#v:獲取數(shù)據(jù)的值,如果是結(jié)構(gòu)體,會(huì)攜帶結(jié)構(gòu)體名和字段名。

fmt.Printf("%#v", data)
// 輸出
main.Example{Content:"例子"}

4.%b:二進(jìn)制

fmt.Printf("%b", 4)
// 輸出
100

5.%c:Unicode 碼轉(zhuǎn)字符。

fmt.Printf("%c", 0x82d7)
// 輸出
苗

原文鏈接:https://juejin.cn/post/7180002814079270972

欄目分類(lèi)
最近更新