您可能想要返回 a 的原因Cow<str>
大概是因为字符串可能已经是小写的。然而,当字符串还不是小写时,检测这种边缘情况也可能会导致性能下降,直观上这似乎是最常见的情况。
当然,您可以创建自己的函数来包装to_ascii_lowercase()
,检查它是否已经是小写,然后返回Cow<str>
:
fn my_to_ascii_lowercase<'a>(s: &'a str) -> Cow<'a, str> {
let bytes = s.as_bytes();
if !bytes.iter().any(u8::is_ascii_uppercase) {
Cow::Borrowed(s)
} else {
Cow::Owned(s.to_ascii_lowercase())
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1444 次 |
最近记录: |