我已经看到 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 关注
- 115 浏览
添加回答
举报
0/150
提交
取消