string - Golang trimPrefix 来自字符串 "\"

标签 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 understang "\"作为 scape 字符。你知道我是否可以使用任何 golang 选项来让 golang 明白我不想使用“\”作为转义字符?

最佳答案

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

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

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

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

另一种选择是使用原始字符串文字,其中反斜杠不是特殊的:
var s = `\foo`
s = strings.TrimPrefix(s, `\`)

Go Playground 上试试这个.

关于string - Golang trimPrefix 来自字符串 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59091392/

相关文章:

go - 从字节 slice 中删除单个结构字段

dns - 转储 Avahi & Bonjour、DNS-SD 区域文件

javascript - 如何 chop jQuery 中的字符串?

c# - 检查字符串是否包含数值

c - 我需要帮助过滤 C 中的坏词吗?

python - str 在 python 中的奇怪行为

Python:字符串无法识别达到一定数量的两位数

c++ - 释放 cgo 库的内存

eclipse - 如何使用 GoClipse 在 Eclipse Neon 中创建断点?

mysql - Go 和 mysql,不会拉取所有列