欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang占位符%v、%+v、%#v舉例詳解

 更新時(shí)間:2024年05月30日 09:36:08   作者:alden_ygq  
這篇文章主要給大家介紹了關(guān)于golang占位符%v、%+v、%#v的相關(guān)資料,Go語(yǔ)言中的占位符通常用于格式化輸出,它們以%開(kāi)頭,后跟一個(gè)字符,表示要轉(zhuǎn)換的數(shù)據(jù)類(lèi)型,需要的朋友可以參考下
package main

import "fmt"

type Person struct {
  Name string
  Age  int
}

func main() {
  person := Person{
    Name: "test",
    Age:  15,
  }
  fmt.Printf("%v\n", person)
  fmt.Printf("%+v\n", person)
  fmt.Printf("%#v\n", person)
}

執(zhí)行輸出如下:

{test 15}</code><code>{Name:test Age:15}</code><code>main.Person{Name:"test", Age:15}

1 占位符%v、%+v、%#v說(shuō)明

占位符     說(shuō)明          
%v      輸出所有的值信息 
%+v     打印結(jié)構(gòu)體時(shí)會(huì)打印字段名
%#v     相應(yīng)值的Go語(yǔ)法表示

2 其他占位符說(shuō)明

2.1 布爾

占位符       說(shuō)明                舉例                     輸出
%t          true 或 false。Printf("%t", true)       true

2.2 整數(shù)

占位符     說(shuō)明                                  舉例                       輸出
%b      二進(jìn)制表示                             Printf("%b", 5)             101
%c      相應(yīng)Unicode碼點(diǎn)所表示的字符              Printf("%c", 0x4E2D)        中
%d      十進(jìn)制表示                             Printf("%d", 0x12)          18
%o      八進(jìn)制表示                             Printf("%d", 10)            12
%q      單引號(hào)圍繞的字符字面值,由Go語(yǔ)法安全地轉(zhuǎn)義  Printf("%q", 0x4E2D)        '中'
%x      十六進(jìn)制表示,字母形式為小寫(xiě) a-f          Printf("%x", 13)             d
%X      十六進(jìn)制表示,字母形式為大寫(xiě) A-F          Printf("%x", 13)             D
%U      Unicode格式:U+1234,等同于 "U+%04X"    Printf("%U", 0x4E2D)         U+4E2D

2.3 字符串以及字節(jié)切片

占位符          說(shuō)明                              舉例                           輸出
%s      輸出字符串表示(string類(lèi)型或[]byte)    Printf("%s", []byte("Go語(yǔ)言"))  Go語(yǔ)言
%q      雙引號(hào)圍繞的字符串,由Go語(yǔ)法安全地轉(zhuǎn)義   Printf("%q", "Go語(yǔ)言")         "Go語(yǔ)言"
%x      十六進(jìn)制,小寫(xiě)字母,每字節(jié)兩個(gè)字符       Printf("%x", "golang")       676f6c616e67
%X      十六進(jìn)制,大寫(xiě)字母,每字節(jié)兩個(gè)字符       Printf("%X", "golang")       676F6C616E67

2.4 指針

占位符         說(shuō)明                      舉例                             輸出
%p      十六進(jìn)制表示,前綴 0x          Printf("%p", &people)             0x4f57f0

2.5 浮點(diǎn)數(shù)與復(fù)數(shù)

占位符     說(shuō)明                              舉例            輸出
%b      無(wú)小數(shù)部分的,指數(shù)為二的冪的科學(xué)計(jì)數(shù)法,
        與 strconv.FormatFloat 的 'b' 轉(zhuǎn)換格式一致。例如 -123456p-78
%e      科學(xué)計(jì)數(shù)法,例如 -1234.456e+78        Printf("%e", 10.2)     1.020000e+01
%E      科學(xué)計(jì)數(shù)法,例如 -1234.456E+78        Printf("%e", 10.2)     1.020000E+01
%f      有小數(shù)點(diǎn)而無(wú)指數(shù),例如 123.456        Printf("%f", 10.2)     10.200000
%g      根據(jù)情況選擇 %e 或 %f 以產(chǎn)生更緊湊的(無(wú)末尾的0)輸出 Printf("%g", 10.20)   10.2
%G      根據(jù)情況選擇 %E 或 %f 以產(chǎn)生更緊湊的(無(wú)末尾的0)輸出 Printf("%G", 10.20+2i) 

附:go語(yǔ)言結(jié)構(gòu)體打印時(shí),%v 和 %+v 的區(qū)別

在 Go 語(yǔ)言中,%v 和 %+v 都是格式化打印結(jié)構(gòu)體的占位符。它們的區(qū)別如下:

  • %v:默認(rèn)格式化打印結(jié)構(gòu)體,只輸出結(jié)構(gòu)體的所有字段值,字段之間以空格隔開(kāi)。
  • %+v:格式化打印結(jié)構(gòu)體,會(huì)輸出結(jié)構(gòu)體類(lèi)型和字段名稱(chēng),字段之間以空格隔開(kāi)。

例如,假設(shè)有一個(gè)結(jié)構(gòu)體 Person 定義如下:

Go

type Person struct {
  Name string
  Age int
}

如果定義了一個(gè) Person 類(lèi)型的變量 p,并使用 fmt.Println() 函數(shù)打印它,則輸出結(jié)果如下:

Go

p := Person{Name: "John Doe", Age: 30}

fmt.Println(p) // {John Doe 30}

使用 %v 占位符打印結(jié)構(gòu)體,只會(huì)輸出結(jié)構(gòu)體的所有字段值,即 John Doe 和 30。

如果使用 %+v 占位符打印結(jié)構(gòu)體,則會(huì)輸出結(jié)構(gòu)體類(lèi)型和字段名稱(chēng),即 Person{Name: John Doe, Age: 30}。

總結(jié):

  • %v:默認(rèn)格式化打印結(jié)構(gòu)體,只輸出字段值。
  • %+v:格式化打印結(jié)構(gòu)體,輸出結(jié)構(gòu)體類(lèi)型和字段名稱(chēng)。

根據(jù)需要選擇合適的占位符來(lái)打印結(jié)構(gòu)體。

總結(jié) 

到此這篇關(guān)于golang占位符%v、%+v、%#v舉例詳解的文章就介紹到這了,更多相關(guān)go占位符%v、%+v、%#v內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang 流式讀取和發(fā)送使用場(chǎng)景示例

    golang 流式讀取和發(fā)送使用場(chǎng)景示例

    這篇文章主要為大家介紹了golang 流式讀取和發(fā)送使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List

    Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List

    這篇文章主要介紹了Go語(yǔ)言實(shí)現(xiàn)互斥鎖、隨機(jī)數(shù)、time、List的相關(guān)資料,需要的朋友可以參考下
    2018-10-10
  • go判斷文件夾是否存在并創(chuàng)建的實(shí)例

    go判斷文件夾是否存在并創(chuàng)建的實(shí)例

    這篇文章主要介紹了go判斷文件夾是否存在,并創(chuàng)建的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • golang切片初始化的使用示例

    golang切片初始化的使用示例

    Go語(yǔ)言中,切片可通過(guò)直接初始化、數(shù)組初始化、切片表達(dá)式等多種方法進(jìn)行初始化,這些方式提供了靈活的數(shù)據(jù)管理方式,適合不同的編程需求和場(chǎng)景,感興趣的可以了解一下
    2024-10-10
  • GO 函數(shù)式選項(xiàng)模式(Functional Options Pattern)

    GO 函數(shù)式選項(xiàng)模式(Functional Options Pattern)

    Option模式支持傳遞多個(gè)參數(shù),并且在參數(shù)個(gè)數(shù)、類(lèi)型發(fā)生變化時(shí)保持兼容性,任意順序傳遞參數(shù),下面給大家介紹GO 函數(shù)式選項(xiàng)模式(Functional Options Pattern)的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2021-10-10
  • GOLANG使用Context管理關(guān)聯(lián)goroutine的方法

    GOLANG使用Context管理關(guān)聯(lián)goroutine的方法

    這篇文章主要介紹了GOLANG使用Context管理關(guān)聯(lián)goroutine的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Golang 在gin框架中如何使用JWT鑒權(quán)

    Golang 在gin框架中如何使用JWT鑒權(quán)

    JWT,全稱(chēng) JSON Web Token,是一種開(kāi)放標(biāo)準(zhǔn)(RFC 7519),用于安全地在雙方之間傳遞信息,這篇文章主要介紹了golang 在Gin框架中使用JWT鑒權(quán),需要的朋友可以參考下
    2024-07-07
  • Golang使用gin框架實(shí)現(xiàn)一個(gè)完整的聊天室功能

    Golang使用gin框架實(shí)現(xiàn)一個(gè)完整的聊天室功能

    由于我們項(xiàng)目的需要,我就研究了一下關(guān)于websocket的相關(guān)內(nèi)容,去實(shí)現(xiàn)一個(gè)聊天室的功能,經(jīng)過(guò)幾天的探索,現(xiàn)在使用Gin框架實(shí)現(xiàn)了一個(gè)完整的聊天室+消息實(shí)時(shí)通知系統(tǒng),感興趣的小伙伴歡迎閱讀本文
    2023-08-08
  • Go語(yǔ)言讀取文件的四種方式

    Go語(yǔ)言讀取文件的四種方式

    本文主要介紹了Go語(yǔ)言讀取文件的四種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 通過(guò)Golang實(shí)現(xiàn)linux命令ls命令(命令行工具構(gòu)建)

    通過(guò)Golang實(shí)現(xiàn)linux命令ls命令(命令行工具構(gòu)建)

    這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Golang實(shí)現(xiàn)一個(gè)linux命令ls命令(命令行工具構(gòu)建),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下
    2023-01-01

最新評(píng)論