从字符串中删除单引号-“不能使用“'”(类型无类型字符串)作为类型字节”

我有一个字符串,可能会或可能不会被双引号或单引号包围。我想删除第一组引号(如果存在)。所以:

"foo" --> foo
""foo"" --> "foo"
'foo' --> foo
'foo --> foo

等等。

我找到了这个答案,它描述了使用切片表达式来索引字符串的第一个和最后一个字符,然后如果其中一个字符是引号,则获取字符串的一部分。所以我试图调整代码以涵盖单引号和双引号:

func stripQuotes(str string) string {
    s := str[:]
    if len(s) > 0 && (s[0] == '"' || s[0] == "'") {
        s = s[1:]
    }
    if len(s) > 0 && (s[len(s)-1] == '"' || s[len(s)-1] == "'") {
        s = s[:len(s)-1]
    }

    return s
}

但它返回一个错误:

cannot convert "'" (type untyped string) to type byte
cannot convert "'" (type untyped string) to type byte

所以我尝试将单引号转换为字节,但这也不起作用:

...
if len(s) > 0 && (s[0] == '"' || s[0] == byte("'")) {
...

它返回错误:

我知道这里缺少一些基本的字符串处理知识,但我不确定是什么。有没有一种简单的方法来识别字符串中的单引号?

回答

在 Go 中,双引号表示字符串文字,单引号表示符文或字节文字。它们不能像其他语言一样互换。

因此拼写为文字单引号'''


以上是从字符串中删除单引号-“不能使用“'”(类型无类型字符串)作为类型字节”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>