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

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

分享到微博請遵守國家法律
新河县| 永年县| 炉霍县| 当阳市| 崇州市| 仙居县| 磐安县| 巴林右旗| 东阳市| 花莲县| 麦盖提县| 绍兴县| 辉南县| 九龙坡区| 迁西县| 汝阳县| 巢湖市| 西昌市| 娱乐| 康保县| 盘山县| 浮山县| 平顶山市| 齐齐哈尔市| 浠水县| 凤山市| 车险| 双鸭山市| 阿勒泰市| 观塘区| 石棉县| 广宗县| 木兰县| 湘潭县| 枣庄市| 朝阳县| 深水埗区| 河北区| 宝坻区| 苍南县| 潼关县|