最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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 占位符還傻傻分不清?的評論 (共 條)

分享到微博請遵守國家法律
建德市| 平邑县| 新化县| 隆昌县| 博爱县| 客服| 沙湾县| 濮阳市| 文安县| 南岸区| 班玛县| 河东区| 江西省| 集安市| 保康县| 大同市| 南溪县| 通化市| 靖远县| 宽甸| 双柏县| 江孜县| 二连浩特市| 焦作市| 东港市| 阿图什市| 无极县| 南靖县| 义马市| 富裕县| 互助| 宕昌县| 石屏县| 通州市| 桃园市| 郁南县| 若羌县| 石首市| 清镇市| 米林县| 扶沟县|