gpt4 book ai didi

string - 为什么 to_ascii_lowercase 返回一个 String 而不是 Cow

转载 作者:行者123 更新时间:2023-11-29 08:08:33 24 4
gpt4 key购买 nike

str::to_ascii_lowercase 返回一个字符串。为什么它不返回 Cow<str> 就像 to_string_lossy String::from_utf8_lossy

同样适用于 str::to_ascii_uppercase .

最佳答案

您可能想要返回 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())
}
}

关于string - 为什么 to_ascii_lowercase 返回一个 String 而不是 Cow<str>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51894489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com