最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入了解Golang中的格式化輸出

 更新時(shí)間:2022年11月18日 15:41:45   作者:PolarDay.  
fmt是Go語(yǔ)言中用于控制文本輸出的常用標(biāo)準(zhǔn)庫(kù),文中將通過(guò)示例詳細(xì)講解一下Go語(yǔ)言中不同形式的格式化輸出,感興趣的小伙伴可以了解一下

fmt

Go語(yǔ)言用于控制文本輸出常用的標(biāo)準(zhǔn)庫(kù)是fmt

fmt中主要用于輸出的函數(shù)有:

  • Print: 輸出到控制臺(tái),不接受任何格式化操作
  • Println: 輸出到控制臺(tái)并換行
  • Printf: 格式化輸出,只可以打印出格式化的字符串,只可以直接輸出字符串類型的變量(不可以直接輸出別的類型)
  • Sprintf: 格式化并返回一個(gè)字符串而不帶任何輸出
  • Fprintf: 來(lái)格式化并輸出到io.Writers而不是os.Stdout

格式化

通過(guò)Printf函數(shù)來(lái)測(cè)試下Go語(yǔ)言里面的字符串格式化:

fmt.Sprintf(格式化樣式, 參數(shù)列表…)

格式樣式: 字符串形式,格式化符號(hào)以%開(kāi)頭,%s字符串格式,%d十進(jìn)制的整數(shù)格式

參數(shù)列表: 多個(gè)參數(shù)以逗號(hào)分隔,個(gè)數(shù)必須與格式化樣式中的個(gè)數(shù)一一對(duì)應(yīng),否則運(yùn)行時(shí)會(huì)報(bào)錯(cuò)

比如:

username := "boy"
fmt.Printf("welcome, %s", username)

整數(shù)格式化

占 位 符描 述
%b整數(shù)以二進(jìn)制方式顯示
%o整數(shù)以八進(jìn)制方式顯示
%d整數(shù)以十進(jìn)制方式顯示
%x整數(shù)以十六進(jìn)制方式顯示
%X整數(shù)以十六進(jìn)制、字母大寫(xiě)方式顯示
%c相應(yīng)Unicode碼點(diǎn)所表示的字符
%UUnicode字符,Unicode格式:123,等同于“U+007B”
func main() {
    fmt.Printf("%b \n", 123) //1111011
    fmt.Printf("%o \n", 123) //173
    fmt.Printf("%d \n", 123) //123
    fmt.Printf("%x \n", 123) //7b
    fmt.Printf("%X \n", 123) //7B   
    fmt.Printf("%c \n", 123) //{
    fmt.Printf("%U \n", 123) //U+007B 
}

浮點(diǎn)數(shù)格式化

占 位 符描 述
%e科學(xué)計(jì)數(shù)法,例如 1.234560e+02
%E科學(xué)計(jì)數(shù)法,例如 1.234560E+02
%f有小數(shù)點(diǎn)而無(wú)指數(shù),例如 123.456
%F等價(jià)于%f
%g根據(jù)情況選擇 %e 或 %f 以產(chǎn)生更緊湊的(無(wú)末尾的0)輸出
%G根據(jù)情況選擇 %E 或 %F 以產(chǎn)生更緊湊的(無(wú)末尾的0)輸出
func main() {
    fmt.Printf("%e \n", 123.456) //1.234560e+02
    fmt.Printf("%E \n", 123.456) //1.234560E+02
    fmt.Printf("%f \n", 123.456) //123.456000
    fmt.Printf("%F \n", 123.456) //123.456000
    fmt.Printf("%g \n", 123.456) //123.456
    fmt.Printf("%G \n", 123.456) //123.456 
}

布爾類型格式化

占 位 符描 述
%ttrue 或 false
func main() {
    fmt.Printf("%t", true) //true
}

字符格式化

占 位 符描 述
%c相應(yīng)Unicode碼點(diǎn)所表示的字符
func main() {
    fmt.Printf("%c", 0x4E2D) //中
}

字符串格式化

占 位 符描 述
%s直接輸出字符串或者[]byte
%q雙引號(hào)圍繞的字符串,由Go語(yǔ)法安全地轉(zhuǎn)義
%x每個(gè)字節(jié)用兩字符十六進(jìn)制數(shù)表示(使用a-f)
%X每個(gè)字節(jié)用兩字符十六進(jìn)制數(shù)表示(使用A-F)
func main() {
    fmt.Printf("%s \n", "Hello world") //Hello world
    fmt.Printf("%q \n", "Hello world") //"Hello world"
    fmt.Printf("%x \n", "Hello world") //48656c6c6f20776f726c64
    fmt.Printf("%X \n", "Hello world") //48656C6C6F20776F726C64
}

指針格式化

占 位 符描 述
%p表示為十六進(jìn)制,并加上前導(dǎo)的0x
%#p表示為十六進(jìn)制,沒(méi)有前導(dǎo)的0x
func main() {
    a := "Hello world"
    b := &a
    fmt.Printf("%p \n", b)  //0xc000046230
    fmt.Printf("%#p \n", b) //c000046230
}

通用占位符

占 位 符描 述
%v值的默認(rèn)格式
%+v類似%v,但輸出結(jié)構(gòu)體時(shí)會(huì)添加字段名
%#v相應(yīng)值的Go語(yǔ)法表示
%T相應(yīng)值的類型的Go語(yǔ)法表示
%%百分號(hào),字面上的%,非占位符含義
func main() {
    fmt.Printf("%v \n", "Hello World")   //Hello World
    fmt.Printf("%+v \n", "Hello World")  //Hello World
    fmt.Printf("%#v \n", "Hello World")  //"Hello World"
    fmt.Printf("%T \n", "Hello World")   //string
    fmt.Printf("%%%v \n", "Hello World") //%Hello World
}

寬度表示

浮點(diǎn)數(shù)精度控制

寬度通過(guò)一個(gè)緊跟在百分號(hào)后面的十進(jìn)制數(shù)指定,如果未指定寬度,則表示值時(shí)除必需之外不作填充。

精度通過(guò)(可選的)寬度后跟點(diǎn)號(hào)后跟的十進(jìn)制數(shù)指定。如果未指定精度,會(huì)使用默認(rèn)精度;如果點(diǎn)號(hào)后沒(méi)有跟數(shù)字,表示精度為0。舉例如下

func main() {
    fmt.Printf("|%f|\n", 123.456)     //|123.456000|
    fmt.Printf("|%12f|\n", 123.456)   //|  123.456000|
    fmt.Printf("|%.3f|\n", 123.456)   //|123.456|
    fmt.Printf("|%12.3f|\n", 123.456) //|     123.456|
    fmt.Printf("|%12.f|\n", 123.456)  //|         123|
}

字符串長(zhǎng)度控制

寬度設(shè)置格式:占位符中間加一個(gè)數(shù)字, 數(shù)字分正負(fù), +: 右對(duì)齊, -: 左對(duì)齊

最小寬度:百分號(hào)后緊跟十進(jìn)制數(shù),不夠部分可以選擇補(bǔ)0

最大寬度:小數(shù)點(diǎn)后的十進(jìn)制數(shù),超出的部分會(huì)被截?cái)?/p>

func main() {
    fmt.Printf("|%s|\n", "123.456")    //|123.456|
    fmt.Printf("|%12s|\n", "123.456")  //|     123.456|
    fmt.Printf("|%-12s|\n", "123.456") //|123.456     |
    fmt.Printf("|%012s|\n", "123.456") //|00000123.456|
    fmt.Printf("|%.5s|\n", "123.456")  //|123.4|
}

到此這篇關(guān)于深入了解Golang中的格式化輸出的文章就介紹到這了,更多相關(guān)Golang格式化輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go調(diào)度器學(xué)習(xí)之協(xié)作與搶占詳解

    Go調(diào)度器學(xué)習(xí)之協(xié)作與搶占詳解

    如果某個(gè)G執(zhí)行時(shí)間過(guò)長(zhǎng),其他的G如何才能被正常調(diào)度,這就引出了接下來(lái)的話題:協(xié)作與搶占。本文將通過(guò)一些示例為大家詳細(xì)講講調(diào)度器中協(xié)作與搶占的相關(guān)知識(shí),需要的可以參考一下
    2023-04-04
  • 使用自定義錯(cuò)誤碼攔截grpc內(nèi)部狀態(tài)碼問(wèn)題

    使用自定義錯(cuò)誤碼攔截grpc內(nèi)部狀態(tài)碼問(wèn)題

    這篇文章主要介紹了使用自定義錯(cuò)誤碼攔截grpc內(nèi)部狀態(tài)碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • GO語(yǔ)言實(shí)現(xiàn)AES-CFB加密的操作方法

    GO語(yǔ)言實(shí)現(xiàn)AES-CFB加密的操作方法

    本文介紹了如何用Go語(yǔ)言實(shí)現(xiàn)AES-CFB加密和解密,首先,定義一個(gè)屬于encrypt包的文件,使用AES算法、CFB模式和Base64編碼等功能,在加密函數(shù)中,接收明文和密鑰,生成一個(gè)AES塊密碼和一個(gè)隨機(jī)的初始化向量,實(shí)現(xiàn)明文的加密
    2024-10-10
  • Golang 語(yǔ)言極簡(jiǎn)類型轉(zhuǎn)換庫(kù)cast的使用詳解

    Golang 語(yǔ)言極簡(jiǎn)類型轉(zhuǎn)換庫(kù)cast的使用詳解

    本文我們通過(guò) cast.ToString() 函數(shù)的使用,簡(jiǎn)單介紹了cast 的使用方法,除此之外,它還支持很多其他類型,在這沒(méi)有多多介紹,對(duì)Golang 類型轉(zhuǎn)換庫(kù) cast相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-11-11
  • Go存儲(chǔ)基礎(chǔ)使用direct io方法實(shí)例

    Go存儲(chǔ)基礎(chǔ)使用direct io方法實(shí)例

    這篇文章主要介紹了Go存儲(chǔ)基礎(chǔ)之如何使用direct io方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go命令行參數(shù)解析flag 包使用示例詳解

    Go命令行參數(shù)解析flag 包使用示例詳解

    這篇文章主要介紹了Go命令行參數(shù)解析flag 包使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Golang之defer 延遲調(diào)用操作

    Golang之defer 延遲調(diào)用操作

    這篇文章主要介紹了Golang之defer 延遲調(diào)用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go語(yǔ)言并發(fā)爬蟲(chóng)的具體實(shí)現(xiàn)

    Go語(yǔ)言并發(fā)爬蟲(chóng)的具體實(shí)現(xiàn)

    本文主要介紹了Go語(yǔ)言并發(fā)爬蟲(chóng)的具體實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 一文帶你深入理解Go語(yǔ)言中的sync.Cond

    一文帶你深入理解Go語(yǔ)言中的sync.Cond

    sync.Cond?表示的是條件變量,它是一種同步機(jī)制,用來(lái)協(xié)調(diào)多個(gè)?goroutine?之間的同步。本文將通過(guò)示例為大家介紹Go語(yǔ)言中sync.Cond的使用,需要的可以參考一下
    2023-01-01
  • golang-redis之sorted set類型操作詳解

    golang-redis之sorted set類型操作詳解

    這篇文章主要介紹了golang-redis之sorted set類型操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12

最新評(píng)論

南昌市| 将乐县| 荥阳市| 汽车| 马山县| 黄梅县| 车险| 呼伦贝尔市| 垫江县| 丹寨县| 开阳县| 石狮市| 阳曲县| 牙克石市| 南昌市| 新乐市| 五峰| 红桥区| 津南区| 高州市| 白城市| 三原县| 汝城县| 新竹市| 柳江县| 泸水县| 杭锦后旗| 天柱县| 青田县| 南郑县| 蕲春县| 伊吾县| 孝感市| 康乐县| 隆林| 东丽区| 兰溪市| 楚雄市| 新晃| 石泉县| 册亨县|