Golang trimPrefix 来自字符串“\”

pca*_*ana 2 string go

我已经看到 golang 有函数func TrimPrefix(s, prefix string) string返回 s 没有提供的前导前缀字符串。

我的问题是我有一个以字符“\”开头的字符串(例如“\foo”)。当我尝试使用 TrimPrefix 时出现错误。

高朗代码:

var s = "\foo"
    s = strings.TrimPrefix(s, "\")
    fmt.Print(s)
Run Code Online (Sandbox Code Playgroud)

错误:

./prog.go:10:32: newline in string
./prog.go:10:32: syntax error: unexpected newline, expecting comma or )
Run Code Online (Sandbox Code Playgroud)

我已经看到这是由于 golang understang "\" 作为 scape 字符。你知道我是否可以使用任何 golang 选项来让 golang 明白我不想使用“\”作为转义字符?

icz*_*cza 5

"\"不是有效的 Go 字符串文字。你得到的是一个编译时错误。在解释字符串文字中,反斜杠\是一个特殊字符。

如果您希望字符串包含反斜杠字符,则必须使用序列\\

var s = "\\foo"
s = strings.TrimPrefix(s, "\\")
Run Code Online (Sandbox Code Playgroud)

哪个将输出(在Go Playground上尝试):

foo
Run Code Online (Sandbox Code Playgroud)

另一种选择是在反斜杠不特殊的情况下使用原始字符串文字:

var s = `\foo`
s = strings.TrimPrefix(s, `\`)
Run Code Online (Sandbox Code Playgroud)

Go Playground上试试这个。