我只是在学习 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/