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

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

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

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

2 其他占位符說明

2.1 布爾

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

2.2 整數(shù)

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

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

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

2.4 指針

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

2.5 浮點數(shù)與復(fù)數(shù)

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

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

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

  • %v:默認格式化打印結(jié)構(gòu)體,只輸出結(jié)構(gòu)體的所有字段值,字段之間以空格隔開。
  • %+v:格式化打印結(jié)構(gòu)體,會輸出結(jié)構(gòu)體類型和字段名稱,字段之間以空格隔開。

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

Go

type Person struct {
  Name string
  Age int
}

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

Go

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

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

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

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

總結(jié):

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

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

總結(jié) 

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

相關(guān)文章

  • Go語言內(nèi)置包的使用

    Go語言內(nèi)置包的使用

    本文主要介紹了Go語言內(nèi)置包的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • go帶緩沖chan實現(xiàn)消息隊列功能

    go帶緩沖chan實現(xiàn)消息隊列功能

    本文主要介紹了go帶緩沖chan實現(xiàn)消息隊列功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Go 1.22對net/http包的路由增強功能詳解

    Go 1.22對net/http包的路由增強功能詳解

    Go 1.22 版本對 net/http 包的路由功能進行了增強,引入了方法匹配(method matching)和通配符(wildcards)兩項新功能,本文將給大家詳細的介紹一下Go 1.22對net/http包的路由增強功能,需要的朋友可以參考下
    2024-02-02
  • Go 語言入門學習之正則表達式

    Go 語言入門學習之正則表達式

    這篇文章主要介紹了Go 語言入門學習之正則表達式,文章基于GO語言的相關(guān)資料展開詳細內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • 深入解析Go語言中for循環(huán)的寫法

    深入解析Go語言中for循環(huán)的寫法

    這篇文章主要介紹了Go語言中for循環(huán)的寫法,是Golang入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Go語言中關(guān)閉帶緩沖區(qū)的頻道實例分析

    Go語言中關(guān)閉帶緩沖區(qū)的頻道實例分析

    這篇文章主要介紹了Go語言中關(guān)閉帶緩沖區(qū)的頻道,實例分析了帶緩沖區(qū)頻道的原理與用法,以及關(guān)閉帶緩沖區(qū)頻道的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • go從指定的URL下載圖片并保存到本地的代碼實現(xiàn)

    go從指定的URL下載圖片并保存到本地的代碼實現(xiàn)

    這段代碼定義了一個名為 downloadImage 的函數(shù),其目的是從指定的URL下載圖片并保存到本地文件系統(tǒng),本文是對代碼功能的詳細描述,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • golang結(jié)合mysql設(shè)置最大連接數(shù)和最大空閑連接數(shù)

    golang結(jié)合mysql設(shè)置最大連接數(shù)和最大空閑連接數(shù)

    本文介紹golang?中連接MySQL時,如何設(shè)置最大連接數(shù)和最大空閑連接數(shù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Golang內(nèi)存管理之內(nèi)存逃逸分析

    Golang內(nèi)存管理之內(nèi)存逃逸分析

    逃逸分析是指由編譯器決定內(nèi)存分配的位置,不需要程序員指定,這篇文章主要為大家詳細介紹了Golang中內(nèi)存逃逸分析的幾種方法,需要的可以參考一下
    2023-07-07
  • 一文詳解Go語言中的Defer機制

    一文詳解Go語言中的Defer機制

    在Go語言中,defer是一個關(guān)鍵字,用于確保資源的清理和釋放,特別是在函數(shù)中創(chuàng)建的資源,下面就跟隨小編一起來了解下Defer機制的具體使用吧
    2024-11-11

最新評論

涿州市| 蚌埠市| 从江县| 碌曲县| 营口市| 济南市| 监利县| 宿州市| 东港市| 义乌市| 建始县| 东乡县| 太康县| 上杭县| 冀州市| 梁河县| 盐边县| 济源市| 建德市| 定州市| 娄底市| 武平县| 邻水| 新乡市| 永嘉县| 澄城县| 凭祥市| 微山县| 泾源县| 泸溪县| 武功县| 黔东| 长寿区| 东丰县| 黄平县| 新竹县| 沾化县| 景泰县| 鹤壁市| 东源县| 西乡县|