从字符串中删除单引号 - "Cannot use "'" (type untyped string) as type byte"

Removing single quotes from a string - "Cannot use "'" (type untyped string) as type byte"

我有一个字符串,它可能用双引号或单引号引起来,也可能不引起来。如果存在,我想删除第一组引号。所以:

"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
}

但它 returns 一个错误:

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

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

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

它returns错误:

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

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

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

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