我正在学习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,
}
From theeq_ignore_ascii_case
:
检查两个字符串是否为ASCII不区分大小写的匹配。与to_ascii_lowercase(a) == to_ascii_lowercase(b)相同,但没有分配和复制临时值。