go - Go 中不区分大小写的 HasSuffix

标签 go case-sensitive

我正在从目录列表中寻找特定的文件类型,并使用 HasSuffix 进行比较以寻找一些特定的文件类型。我想让这个比较不区分大小写。

有没有办法向 HasSuffix 函数添加 EqualFold 或其他不区分大小写的比较?

最佳答案

你可以直接使用

if strings.HasSuffix(strings.ToLower(s), "suffix") {
    // do something 
}

您也可以编写自己的包装函数:

func hasSuffix(s, suffix string, caseSensitive bool) bool {
    if caseSensitive {
        return strings.HasSuffix(s, suffix)
    }
    return strings.HasSuffix(strings.ToLower(s), suffix)
}

对于您可以使用的文件名或路径(参见 PeterSO 的回答):

if strings.ToLower(filepath.Ext(s)) == ".fileending" {
    // do something
}

关于go - Go 中不区分大小写的 HasSuffix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586944/

相关文章:

postgresql - Golang 和 Postgres 的交互——每次查询都从 int64 表中减去 1

Golang OpenSSL 错误的 iv 大小

linux - 有没有办法用golang将PDF转换为jpeg?

http - 如何获得第一个 HTTP(重定向)响应?

python - 在 Windows 中检测文件名的大小写不匹配(最好使用 python)?

c - Unix 套接字的 sockaddr_un.sun_path 区分大小写吗?

go - 如何在 golang 中使用 klog 级别的详细信息?

ios - IIS 是否重定向以匹配 url 大小写?

sql - Openbase SQL 区分大小写的怪癖 ('=' 与 LIKE)- 移植到 MySQL

tokenize - Elasticsearch - 如何在使用小写过滤器时保留大写首字母缩略词?