我已經看到 golang 具有返回 s 的函數,func TrimPrefix(s, prefix string) string而沒有提供前導前綴字符串。我的問題是我有一個以字符“\”開頭的字符串(例如“\foo”)。當我嘗試使用 TrimPrefix 時出現錯誤。戈蘭代碼:var s = "\foo"
s = strings.TrimPrefix(s, "\")
fmt.Print(s)錯誤:./prog.go:10:32: newline in string
./prog.go:10:32: syntax error: unexpected newline, expecting comma or )我發現這是由于 golang 將“\”理解為 scape 字符。你知道我是否可以使用任何 golang 選項來讓 golang 理解我不想使用“\”作為轉義字符?
2 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
"\"
不是有效的 Go 字符串文字。您得到的是編譯時錯誤。在解釋的字符串文字中,反斜杠\
是一個特殊字符。
如果您希望字符串包含反斜杠字符,則必須使用以下序列\\
:
var?s?=?"\\foo" s?=?strings.TrimPrefix(s,?"\\")
它將輸出(在Go Playground上嘗試):
foo
另一種選擇是使用原始字符串文字,其中反斜杠不特殊:
var?s?=?`\foo` s?=?strings.TrimPrefix(s,?`\`)
在Go Playground上試試這個。

楊__羊羊
TA貢獻1943條經驗 獲得超7個贊
如果您只想修剪特定前綴的前綴(例如“\”是長度為1的前綴),您可以使用切片函數str[len(prefix):]
:
只是因為它是一個前綴——字符串的頭和一個長度已知的前綴。
如果您只想了解 的使用,請忽略我的帖子TrimPrefix
。:D
- 2 回答
- 0 關注
- 180 瀏覽
添加回答
舉報
0/150
提交
取消