Go 有不区分大小写的字符串 contains() 函数吗?

13 go

我希望能够确定 stringB 是否是 stringA 的不区分大小写的子字符串。查看 Go 的stringspkg,我能得到的最接近的是strings.Contains(strings.ToLower(stringA), strings.ToLower(stringB). 有没有我没有看到的不那么冗长的替代方案?

pay*_*eio 8

如果这只是您不喜欢的冗长,那么如何使您的代码格式更清晰,例如:

    strings.Contains(
        strings.ToLower(stringA),
        strings.ToLower(stringB),
    )
Run Code Online (Sandbox Code Playgroud)

或者将其隐藏在您自己utils(或其他)包中的函数中:

    package utils

    import "strings"

    func ContainsI(a string, b string) bool {
        return strings.Contains(
            strings.ToLower(a),
            strings.ToLower(b),
        )
    }
Run Code Online (Sandbox Code Playgroud)

  • 很好,但这正是本文所解释的性能不佳的原因,他是对的,每次创建一个副本并不是一个好主意。https://www.digitalocean.com/community/questions/how-to-efficiently-compare-strings-in-go (3认同)