五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

golang 占位符還傻傻分不清?

2023-03-10 23:30 作者:阿兵云原生  | 我要投稿

xdm ,寫 C/C++ 語言的時候有格式控制符,例如 %s , %d , %c , %p 等等

在寫 golang 的時候,也是有對應(yīng)的格式控制符,也叫做占位符,寫這個占位符,需要有對應(yīng)的數(shù)據(jù)與之對應(yīng),不能瞎搞

基本常見常用的占位符

  • %s

  • %d

  • %v , %v+ , %+v

  • %T , %q

寫一個 demo 來看看上面占位符的效果,具體都是啥樣的

type?Animal?struct?{
?hobby?string
}

func?main()?{

?name?:=?"xiaomotong"
?age?:=?19
?hh?:=?Animal{"basketball"}

?fmt.Printf("name?=?%s?,?age?=?%d?,?hh?=?%v\n\n",?name,?age,?hh)
?fmt.Printf("hh?=?%+v?,?hh=?%#v\n\n",?hh,?hh)
?fmt.Printf("name?=?%T?,?age?=?%T?,?hh?=?%T\n\n",?name,?age,?hh)
????fmt.Printf("%q",?0x8989)
}

上面的代碼執(zhí)行效果如下:

#?go?run?main.go
name?=?xiaomotong?,?age?=?19?,?hh?=?{basketball}

hh?=?{hobby:basketball}?,?hh=?main.Animal{hobby:"basketball"}

name?=?string?,?age?=?int?,?hh?=?main.Animal

'覉'

從上面的效果我們可以看出來:

%q 表示 單引號圍繞的字符字面值,由Go語法安全地轉(zhuǎn)義 , 感興趣的 xdm 可以嘗試打印調(diào)試看看效果

$s 表示 字符串

$d 表示 十進(jìn)制數(shù)

%v 表示 默認(rèn)格式

%+v 表示 ?打印結(jié)構(gòu)體的時候,會添加相應(yīng)的字段名字

%#v 表示 相應(yīng)數(shù)據(jù)結(jié)構(gòu)的 golang 語言的表示情況

較少使用的占位符

  • %t

  • %b

  • %c

  • %U , %#U

繼續(xù)寫 demo 查看一下效果幾何:

func?main()?{
?a?:=?true
?num?:=?88
?uni?:=?0x8989

?fmt.Printf("%t\n",?a)
?fmt.Printf("%b\n",?num)
?fmt.Printf("%c\n",?0x8989)
?fmt.Printf("uni?=?%U?,?uni?=?%#U\n",?uni,?uni)
}

上面的代碼執(zhí)行效果如下:

#?go?run?main.go
true
1011000

uni?=?U+8989?,?uni?=?U+8989?'覉'

從上面的效果我們可以看出來:

%t 表示 布爾的占位符

%b 表示 二進(jìn)制的數(shù)據(jù)

%c 表示 對應(yīng)的 Unicode 碼點所表示的字符

%U 表示 可以將數(shù)據(jù)轉(zhuǎn)化為 Unicode 格式規(guī)范 , 也就是 + 開頭的

%#U 表示 ?可以將數(shù)據(jù)轉(zhuǎn)換成 unicode 對應(yīng)的字符,demo 中的文字念

進(jìn)制和浮點使用占位符

  • %2d , %07d

  • %x , %#x

  • %f , %.3f

func?main()?{
?num?:=?888
?fNum?:=?888.99

?fmt.Printf("num?=?%2d?,?num?=?%07d\n",?num,?num)
?fmt.Printf("num?=?%x?,?num?=?%#x\n",?num,?num)
?fmt.Printf("num?=?%f??,?num?=?%.3f\n",?fNum,?fNum)
}

上面的代碼執(zhí)行效果如下:

#?go?run?main.go
num?=?888?,?num?=?0000888
num?=?378?,?num?=?0x378
num?=?888.990000??,?num?=?888.990

從上面的效果我們可以看出來:

%2d 表示 總共 2 位數(shù)字,若不足 2 位數(shù)字則前面補(bǔ)零

%07d 表示 總共 7 位數(shù)字,若不足 7 位數(shù)字則前面補(bǔ)零

%x 表示 十六進(jìn)制,全是小寫

%#x 表示 十六進(jìn)制,前面會帶上 0x

%f ?表示 浮點類型的數(shù)據(jù),默認(rèn)是保留 6 位小數(shù)

%.3f ?表示 浮點類型的數(shù)據(jù),保留 3 位小數(shù)

指針占位符

  • %p

  • %#p

func?main()?{
?ptr?:=?"xiaomotong"
?fmt.Printf("ptr?=?%p?,?ptr?=?%#p\n",?&ptr,?&ptr)
}

上面的代碼執(zhí)行效果如下:

#?go?run?main.go
ptr?=?0xc42000e1e0?,?ptr?=?c42000e1e0

%p ?表示 十六進(jìn)制的指針地址,會帶有 0x

%#p ?表示 十六進(jìn)制的指針地址,不會有 0x

小知識,大挑戰(zhàn),占位符,一定還是可以用上的

歡迎點贊,關(guān)注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質(zhì)量的動力

好了,本次就到這里

常見技術(shù)是開放的,我們的心態(tài),更應(yīng)是開放的。擁抱變化,向陽而生,努力向前行。

我是阿兵云原生,歡迎點贊關(guān)注收藏,下次見~


golang 占位符還傻傻分不清?的評論 (共 條)

分享到微博請遵守國家法律
宁津县| 独山县| 肇源县| 德化县| 安多县| 木里| 海南省| 邹平县| 舞阳县| 澄迈县| 阳城县| 东辽县| 丹棱县| 麦盖提县| 改则县| 平果县| 横峰县| 平原县| 新野县| 承德市| 枝江市| 肇州县| 威宁| 嘉义县| 鹤山市| 岳普湖县| 哈密市| 宁远县| 通渭县| 宾川县| 蒲江县| 张家港市| 宁明县| 贵南县| 富川| 新乐市| 个旧市| 沙坪坝区| 平舆县| 中方县| 庆云县|