来自字符串“ \”的Golang trimPrefix

时间:2019-11-28 14:46:25

标签: string go

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

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

golang代码:

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下划线“ \”作为替补字符。您是否知道我是否可以使用任何golang选项以使golang理解我不想使用“ \”作为转义字符?

2 个答案:

答案 0 :(得分:3)

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

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

var s = "\\foo"
s = strings.TrimPrefix(s, "\\")

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

foo

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

var s = `\foo`
s = strings.TrimPrefix(s, `\`)

Go Playground上尝试这个。

答案 1 :(得分:0)

如果您只想修剪特定前缀(例如“ \”是长度为1的前缀),则可以将slice函数用作:str[len(prefix):]

仅因为它是前缀-字符串的头部和长度已知的前缀。

如果您只想知道TrimPrefix的使用,请忽略我的帖子。 :D