golang中的單引號轉(zhuǎn)義問題
golang的單引號轉(zhuǎn)義
如題,golang中有時候需要將一個字符串中的單引號再轉(zhuǎn)義一次,比如在兩個單引號之間包含一個含有單引號的字符串的情形。
但是這個轉(zhuǎn)義卻不像C語言里的那樣,比如這樣寫:info = strings.Replace(info, "\'", "\\\'", -1)
就報unknown escape sequence錯誤。
正確的寫法是:
info = strings.Replace(info, "'", "\\'", -1)
我想這里應該是:在兩個雙引號之間不需要使用\'來表示單引號。
go語言中的單引號、雙引號和反引號
1.單引號
單引號在go語言中表示golang中的rune(int32)類型,單引號里面是單個字符,對應的值為改字符的ASCII值。
func main() { ? ? a := 'A' ? ? fmt.Println(a) }
輸出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
65
2.雙引號
在go語言中雙引號里面可以是單個字符也可以是字符串,雙引號里面可以有轉(zhuǎn)義字符,如\n、\r等,對應go語言中的string類型。
func main() { ? ? a := "Hello golang\nI am random_wz." ? ? fmt.Println(a) }
輸出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
Hello golang
I am random_wz.
3.反引號
反引號中的字符表示其原生的意思,在單引號中的內(nèi)容可以是多行內(nèi)容,不支持轉(zhuǎn)義。
func main() { ? ? a := `Hello golang\n: I am random_wz. Good.` ? ? fmt.Println(a) }
輸出:
random@random-wz MINGW64 /c/GOPATH/src/Test
$ go run main.go
Hello golang\n:
I am random_wz.
Good.
可以看到\n并沒有被轉(zhuǎn)義,而是被直接作為字符串輸出。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Go 并發(fā)實現(xiàn)協(xié)程同步的多種解決方法
這篇文章主要介紹了Go 并發(fā)——實現(xiàn)協(xié)程同步的多種解決方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08解決Golang在Web開發(fā)時前端莫名出現(xiàn)的空白換行
最近在使用Go語言開發(fā)Web時,在前端莫名出現(xiàn)了空白換行,找了網(wǎng)上的一些資料終于找到了解決方法,現(xiàn)在分享給大家,有需要的可以參考。2016-08-08Go?實戰(zhàn)單隊列到優(yōu)先級隊列實現(xiàn)圖文示例
這篇文章主要為大家介紹了Go?實戰(zhàn)單隊列到優(yōu)先級隊列圖文示例實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07Go開發(fā)go-optioner工具實現(xiàn)輕松生成函數(shù)選項模式代碼
go-optioner?是一個在?Go?代碼中生成函數(shù)選項模式代碼的工具,可以根據(jù)給定的結(jié)構(gòu)定義自動生成相應的選項代碼,下面就來聊聊go-optioner是如何使用的吧2023-07-07Go中字符串處理?fmt.Sprintf與string.Builder的區(qū)別對比分析
在Go語言中,我們通常會遇到兩種主要的方式來處理和操作字符串:使用fmt.Sprintf函數(shù)和string.Builder類型,本文給大家介紹它們在性能和用法上有一些關(guān)鍵區(qū)別,感興趣的朋友跟隨小編一起看看吧2023-11-11