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

在Go中格式化字符串的幾種常用方法

 更新時(shí)間:2023年10月25日 11:06:00   作者:CHQIUU  
Go對(duì)字符串格式化提供了良好的支持,這篇文章主要給大家介紹了關(guān)于在Go中格式化字符串的幾種常用方法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Go具有一定的參考價(jià)值,需要的朋友可以參考下

前言

由于字符串通常由書面文本組成,在很多情況下,我們可能希望通過(guò)標(biāo)點(diǎn)符號(hào)、換行和縮進(jìn)來(lái)更好地控制字符串的外觀,以使其更易于閱讀。

在本教程中,我們將介紹一些處理go字符串的方法,以確保所有輸出文本的格式正確。

字符串字面量

讓我們首先區(qū)分字符串字面量字符串值。字符串字面量就是我們?cè)谟?jì)算機(jī)程序的源代碼中看到的,包括引號(hào)。當(dāng)我們調(diào)用fmt.Println函數(shù)并運(yùn)行程序時(shí),我們看到的是一個(gè)字符串。

在“Hello, World!”程序中,字符串字面量是"Hello, World!",而字符串值是 Hello, World!,沒(méi)有引號(hào)。這個(gè)字符串值就是我們運(yùn)行Go程序時(shí)在終端窗口中看到的輸出。

但是有些字符串值可能需要包含引號(hào),比如我們引用一個(gè)源時(shí)。因?yàn)樽址置媪亢妥址挡⒉幌嗟龋酝ǔS斜匾獮樽址置媪刻砑宇~外的格式,以確保字符串值按我們想要的方式顯示。

引號(hào)

因?yàn)槲覀兛梢栽贕o中使用反引號(hào)(`)或雙引號(hào)("),通過(guò)在由反引號(hào)括起來(lái)的字符串中使用雙引號(hào),可以很簡(jiǎn)單地在字符串中嵌入引號(hào):

`Sammy says, "Hello!"`

或者,要使用后引號(hào),可以將字符串括在雙引號(hào)中:

"Sammy likes the `fmt` package for formatting strings.."

通過(guò)使用反引號(hào)和雙引號(hào),我們可以控制字符串中引號(hào)和反引號(hào)的顯示。

重要的是要記住,在Go中使用反引號(hào)會(huì)創(chuàng)建一個(gè)raw字符串字面量,而使用雙引號(hào)會(huì)創(chuàng)建一個(gè)interpret 字符串字面量。

轉(zhuǎn)義字符

另一種格式化字符串的方法是使用轉(zhuǎn)義字符。轉(zhuǎn)義字符用于告訴代碼下面的字符具有特殊的含義。轉(zhuǎn)義字符都以反斜杠鍵(\)和字符串中的另一個(gè)字符開始,以某種方式格式化給定的字符串。

下面列出了一些常見(jiàn)的轉(zhuǎn)義字符:

轉(zhuǎn)義字符它如何格式化
|反斜線
"雙引號(hào)
\n換行符
\tTab(水平縮進(jìn))

讓我們使用轉(zhuǎn)義字符將引號(hào)添加到上面的引號(hào)示例中,但這一次我們將使用雙引號(hào)來(lái)表示字符串:

fmt.Println("Sammy says, \"Hello!\"")

OutputSammy says, "Hello!"

通過(guò)使用轉(zhuǎn)義字符\",我們可以使用雙引號(hào)將包含在雙引號(hào)中文本的字符串括起來(lái)。

我們可以使用 \n 轉(zhuǎn)義字符來(lái)?yè)Q行,而無(wú)需鍵入回車鍵或回車鍵:

fmt.Println("This string\nspans multiple\nlines.")

OutputThis string
spans multiple
lines.

我們也可以組合轉(zhuǎn)義字符。下面來(lái)打印一個(gè)多行字符串,并包含分項(xiàng)列表的制表符間距,例如:

fmt.Println("1.\tShark\n2.\tShrimp\n10.\tSquid")

Output1.      Shark
2.      Shrimp
10.     Squid

在前面的例子中,\t轉(zhuǎn)義字符提供的水平縮進(jìn)確保了在第二列內(nèi)對(duì)齊,使輸出非常易讀。

轉(zhuǎn)義字符用于為字符串添加額外的格式,這些格式可能很難或不可能實(shí)現(xiàn)。如果沒(méi)有轉(zhuǎn)義字符,你將無(wú)法構(gòu)造字符串Sammy says, "I like to use the `fmt` package"

多行

將字符串打印成多行可以提高文本的可讀性。對(duì)于多行,字符串可以組合成干凈有序的文本,格式化為字母,或用于保持詩(shī)歌或歌曲歌詞的換行。

要?jiǎng)?chuàng)建跨多行的字符串,需要使用反引號(hào)將字符串括起來(lái)。請(qǐng)記住,雖然這將保留行返回,但它也創(chuàng)建了一個(gè)raw字符串字面量。

`
This string is on 
multiple lines
within three single 
quotes on either side.
`
Output
This string is on 
multiple lines
within three single 
quotes on either side.

為了避免這種情況,你需要將第一行放在后引號(hào)的后面,并以后引號(hào)結(jié)束最后一行。

`This string is on 
multiple lines
within three single 
quotes on either side.`

如果你需要?jiǎng)?chuàng)建一個(gè)解釋過(guò)的字符串字面量,可以使用雙引號(hào)和+操作符,但你需要插入自己的換行符。

"This string is on\n" +
"multiple lines\n" +
"within three single\n" +
"quotes on either side."

雖然反引號(hào)可以使長(zhǎng)文本更容易打印和閱讀,但如果你需要一個(gè)經(jīng)過(guò)解釋的字符串字面量,就需要使用雙引號(hào)。

原始字符串字面量

如果我們不希望字符串具有特殊的格式,該怎么辦?例如,我們可能需要比較或計(jì)算有意使用反斜杠的計(jì)算機(jī)代碼字符串,因此我們不希望將它用作轉(zhuǎn)義字符。

原始字符串字面量告訴Go忽略字符串中的所有格式,包括轉(zhuǎn)義字符。

我們使用反引號(hào)來(lái)創(chuàng)建一個(gè)原始字符串:

fmt.Println(`Sammy says,\"The balloon\'s color is red.\"`)
OutputSammy says,\"The balloon\'s color is red.\"

通過(guò)在給定字符串的兩邊使用反引號(hào)來(lái)構(gòu)造原始字符串,我們可以保留反斜杠和其他用作轉(zhuǎn)義字符的字符。

總結(jié)

本教程介紹了在Go中格式化文本的幾種方法。通過(guò)使用轉(zhuǎn)義字符或原始字符串等技術(shù),我們能夠確保程序的字符串在屏幕上正確呈現(xiàn),以便最終用戶能夠輕松地閱讀所有輸出的文本。

相關(guān)文章

  • 一文詳解go的defer和return的執(zhí)行順序

    一文詳解go的defer和return的執(zhí)行順序

    go的defer和return是golang中的兩個(gè)關(guān)鍵字,return用于返回函數(shù)的返回值,也可以參與一定的流程控制,defer是golang中的延遲調(diào)用,經(jīng)常用于文件流的關(guān)閉,鎖的解鎖操作,本文給大家介紹了go的defer和return的執(zhí)行順序,需要的朋友可以參考下
    2024-07-07
  • goland 實(shí)現(xiàn)自動(dòng)格式化代碼

    goland 實(shí)現(xiàn)自動(dòng)格式化代碼

    這篇文章主要介紹了goland 實(shí)現(xiàn)自動(dòng)格式化代碼的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • 淺析Go語(yǔ)言容器之?dāng)?shù)組和切片的使用

    淺析Go語(yǔ)言容器之?dāng)?shù)組和切片的使用

    在?Java?的核心庫(kù)中,集合框架可謂鼎鼎大名:Array?、List、Set等等,隨便拎一個(gè)出來(lái)都值得開發(fā)者好好學(xué)習(xí)如何使用甚至是背后的設(shè)計(jì)源碼。雖然Go語(yǔ)言沒(méi)有如此豐富的容器類型,但也有一些基本的容器供開發(fā)者使用,接下來(lái)讓我們認(rèn)識(shí)一下這些容器類型吧
    2022-11-11
  • 基于go微服務(wù)效率工具goctl深度解析

    基于go微服務(wù)效率工具goctl深度解析

    這篇文章主要為大家介紹了基于go微服務(wù)效率工具goctl深度解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Go語(yǔ)言中json序列化優(yōu)化技巧

    Go語(yǔ)言中json序列化優(yōu)化技巧

    在Go語(yǔ)言開發(fā)中,JSON因其簡(jiǎn)潔和廣泛的兼容性,通常被用作數(shù)據(jù)交換的主要序列化格式,本文將探討JSON希望對(duì)大家有所幫助序列化的一些局限性,也算是一個(gè)小坑吧,并給出一些常用的解決方案,
    2024-11-11
  • 獲取Golang環(huán)境變量的三種方式小結(jié)

    獲取Golang環(huán)境變量的三種方式小結(jié)

    本文介紹了Golang中獲取環(huán)境變量的三種方式,包含使用Viper包、GoDotEnv包和os包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • golang反射機(jī)制的用法詳解

    golang反射機(jī)制的用法詳解

    Golang 作為靜態(tài)類型的編譯型語(yǔ)言,雖然在設(shè)計(jì)上傾向于簡(jiǎn)潔和高效,但也內(nèi)置了強(qiáng)大的反射機(jī)制,本文將深入講解 Golang 的反射機(jī)制,幫助大家更好地理解和運(yùn)用這一強(qiáng)大的特性,需要的朋友可以參考下
    2023-12-12
  • Golang簡(jiǎn)單實(shí)現(xiàn)http的server端和client端

    Golang簡(jiǎn)單實(shí)現(xiàn)http的server端和client端

    Http 服務(wù)是基于 Tcp 的應(yīng)用層的實(shí)現(xiàn),也是最常見(jiàn)的網(wǎng)絡(luò)協(xié)議之一。本文主要介紹了Golang簡(jiǎn)單實(shí)現(xiàn)http的server端和client端,感興趣的可以了解一下
    2021-06-06
  • Prometheus Go client library使用方式詳解

    Prometheus Go client library使用方式詳解

    這篇文章主要為大家介紹了Prometheus Go client library使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • golang中map增刪改查的示例代碼

    golang中map增刪改查的示例代碼

    在Go語(yǔ)言中,map是一種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì),本文主要介紹了golang中map增刪改查的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11

最新評(píng)論