来自字符串“\”的 Golang 修剪前缀

我已经看到 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 理解我不想使用“\”作为转义字符?


扬帆大鱼
浏览 123回答 2
2回答

繁花不似锦

"\"不是有效的 Go 字符串文字。您得到的是编译时错误。在解释的字符串文字中,反斜杠\是一个特殊字符。如果您希望字符串包含反斜杠字符,则必须使用以下序列\\:var s = "\\foo" s = strings.TrimPrefix(s, "\\")它将输出(在Go Playground上尝试):foo另一种选择是使用原始字符串文字,其中反斜杠不特殊:var s = `\foo` s = strings.TrimPrefix(s, `\`)在Go Playground上试试这个。

杨__羊羊

如果您只想修剪特定前缀的前缀(例如“\”是长度为1的前缀),您可以使用切片函数str[len(prefix):]:只是因为它是一个前缀——字符串的头和一个长度已知的前缀。如果您只想了解 的使用,请忽略我的帖子TrimPrefix。:D
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go