rust - 是否可以使用自定义相等运算符进行模式匹配?

标签 rust

我只是在学习 Rust,我想知道是否有可能采用以下代码:

match letter.to_lowercase().as_str() {
    "a" => 5,
    "n" => 13,
    // And so on...
    _   => 0,
}
并使用 String::eq_ignore_ascii_case作为等式运算符,如下面的伪代码所示:
match letter with letter.eq_ignore_ascii_case as operator {
    "a" => 5,
    "n" => 13,
    // And so on...
    _   => 0,
}
这能做到吗?如果是这样,如何?

最佳答案

简答, , 除非您编写自己的类型包装器,实际上 标准化 你对你需要的东西的投入。
你能做的就是匹配to_ascii_lowercase :

match letter.to_ascii_lowercase().as_str() {
        "a" => 5,
        "n" => 13,
        // And so on...
        _   => 0,
    }
来自 eq_ignore_ascii_case :

Checks that two strings are an ASCII case-insensitive match. Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

关于rust - 是否可以使用自定义相等运算符进行模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68935797/

相关文章:

rust - 尝试使用 Mongodb 池设置 Rocket 服务器时出现问题

visual-studio-code - 使用 "Missing auto-load debug_gdb_scripts"调试 Rust 时出现 Visual Studio Code 错误

rust - 交换两个本地引用会导致生命周期错误

rust - Rust:论点要求借用持续于 `' static`

rust - 在实现图时,不能借为可变的,因为它已经被借用了

rust - 创建单链接堆栈时无法摆脱 `Rc` 错误

rust - 解析 40MB 文件明显比等效的 Pascal 代码慢

loops - E0597试图在向量上循环

rust - 使用沙沙本体时如何减少或加快重建速度?

rust - 终身省略是否适用于特质隐含方法?