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